谁能告诉我偶数阶幻方的算法?用文字表述即可.
问题描述:
谁能告诉我偶数阶幻方的算法?用文字表述即可.
答
N介幻方的性质:每一行每一列以及每个对角线上的数之和相等,切都为N*(N*N+1)/2
设P[N*N]表示N*N方格
1.对于双偶数N(N%4==0)
(1)先画出N*N的方格
(2)在方格内从左到右,从上到下,依此填上1,2,...,N*N
(3)把N*N方格分成N*N/16个4*4的小方格
(4)画出各个4*4小方格的对角线
(5)各对角线上的数不变,非对角线上的数和它对称的数相互调换位置
即A和N*N-A+1对调.
好了,成功!
2.N%4==2
(1)把N*N个数的最前和最后的2N-2个数留下,其余数按 1 的方法填入
正中(N-2)*(N-2)个方格内.
(2)补上外方框
今天从0:00到3:00想出一个补法:
先填上几个特殊数
P[0]=3
P[N-1]=N
P[1]=1
P[N]=2
P[2]=N*N-3
P[3]=5
P[2N]=N+2
P[3N]=N+3
P[4]=N*N-5
下面再填入:
从P[5]到P[N-2]依此为7,8,N*N-8,N*N-9,11,12,N*N-12,N*N-13.
从P[4N]到P[(N-2)*N]依此为N*N-(N+3),N*N-(N+4),N+6,N+7,
N*N-(N+7),N*N-(N+8),N+10,N+11.
再对称的补上其余.