偶数阶幻方填法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
偶数阶幻方填法
以4阶为例,说说偶数阶的填法:
首先,按顺序写下16个数:
1234
5678
9101112
13141516
接下来固定对角线上数字不动(这里是1、6、11、16和4、7、10、13),其它数字作左右对换,如2与3换,5与8换等,得到下面的排列:
1324
8675
1210119
13151416
继续固定对角线,其他数字作上下对称变换,如8与12换,2与15换等,得到如下排列:
115144
12679
810115
133216
这就是四阶幻方,每行每列四个数字之和均为34,其他偶
数阶幻方填法可类推!
奇数阶幻方——口诀
1坐边中间,斜着把数填;
出边填对面,遇数往下旋;
出角仅一次,转回下格间。
一、奇数阶纪方的构造方法(楼梯法)。
把1(或最小的数)放在第一行正中;
按以下规律排列剩下的n*n-1个数:
1)每一个数放在前一个数的右上一格;
2)如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;
3)如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;
4)如果这个数所要放的格已经超出了顶行且超出了最右
列那么就把它放在前一个数的下一行同一列的格内;
5)如果这个数所要放的格已经有数填入,处理方法同4)。图示:
* 1 * * 1 *
* * * * * *
* * * * * 2
* 1 * * 1 *
3 * * 3 * *
* * 2 4 * 2
* 1 * * 1 6
3 5 * 3 5 *
4 * 2 4 * 2
* 1 6 8 1 6
3 5 7 3 5 7
4 * 2 4 * 2
8 1 6
3 5 7
4 9 2
奇数阶幻方的一种用公式表达的构造方法:
设x是要填入的数,(xx,yy)是坐标。坐标如何确定呢?
k= (x-1) div n +(n+3) div 2 + (x-1)
yy=k- (k-1) div n *n
p= (n+1) div 2 + (x-1)- (x-1) div n
xx=n+1-p+(p-1) div n * n
二、双偶阶(4k)阶幻方的构造方法。
就是说,阶数可以被4整除。
看看4阶幻方的制作方法:
先把数字,按顺序写(从左到右,从上到下):
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
然后把对角线,换成互补的数字。
定义:
互补:如果两个数字的和,等于幻方最大数和最小数的和,即n*n+1,称为互补。
16 2 3 13
5 11 10 8
9 7 6 12
4 14 1
5 1
人们从4阶幻方的制作方法,找到了构造双偶阶幻方的方法:
对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按4*4把它划分成k*k个方阵。把每个小方阵的对角线,象制作4阶幻方的方法一样,换成互补的数字,就构成幻方。
事实上,有些小方阵的对角线是连着的。但是因为没有办法画图,我只能这样子描述。
双偶阶幻方另一种用PASCAL程序语句表达的构造的方法如下:
for i:=1 to n do
for j:=1 to n do
begin
if j mod 4>1 then m:=1
else m:=0;
k:=n-i-(n-2*i+1)*m;
if i mod 4>1 then m:=1
else m:=0;
L:=n-j+1-(n-2*j+1)*m;
a[i, j]:=k*N+L;
end;
三、单偶阶(4k+2)幻方的构造
阶数是偶数,但是,又不能被4整除。这是最难的一种幻方。
一种构造n=4k+2幻方的方法:
(1) 先排出4k的双偶阶幻方
(2) 根据幻方的性质,每个数都同时加上8k+2
(3) 把它扩展成为4k+2的方阵。这样,四周包围着一圈。我们只要把
1,2,3……,8k+2, (4k+2)^2, (4k+2)^2-1, ……,(4k)^2+1+8k+2
这些数字,填入最外一圈,使得:对角线两端,每行、每列两端数字互补。
当然,最后圈的两横,两列各数之和要等于变幻常数。
以制作6阶幻方为例:
先制作出4阶幻方。
方阵的每个数字,加上8k+2=10
再把它扩大成6阶,如下图:
* * * * * *
* 26 12 13 23 *
* 15 21 20 18 *
* 19 17 16 22 *
* 14 24 25 11 *
* * * * * *
我们只要把
1,2,3,……,9,10,
36,35,34, (27)
填入外圈。
不过,当n较大时,外圈的填法也不太容易。有一种公式来填外圈。坐标(j,i) 为j行i列的。先固定填下这10个数:a[1,1]=1 a[n,1]=4 a[n-1,1]=10 a[2,n]=3 a[3,n]=5 a[4, n]=7
a[n,n-2]=2 a[n,n-1]=9 a[1,2]=6 a[1,3]=8
当n=4k+2时,