1、n 阶幻方的填法(n3)幻方,亦称纵横图。台湾称为魔术方阵。将自然数 1,2,3,n 2排列成一个 n2方阵,使得每行、每列以及两对角线上的各个数之和都相等,等于这样的方阵称为幻方。(1+2)22 1幻方最早记载于我国公元前 500 年的春秋时期大戴礼中,这说明我国人民早在 2500 年前就已经知道了幻方的排列规律。而在国外,公元 130 年,希腊人塞翁才第一次提起幻方。我国不仅拥用幻方的发明权,而且是对幻方进行深入研究的国家。公元 13 世纪的数学家杨辉已经编制出 310 阶幻方,记载在他 1275 年写的续古摘厅算法一书中。在欧洲,直到 574 年,德国著名画家丢功才绘制出了完整的 4 阶
2、幻方。例如:把 1,2,3,4,5,6,7,8,9 填入 3*3 的格子,使得:每行、每列、两条对角线的和是 15。8 1 63 5 74 9 2n 是它的阶数,比如上面的幻方是 3 阶。n/2*(n*n+1)为幻方的变幻常数。数学上已经证明,对于 n2,n 阶幻方都存在。目前填写幻方的方法,是把幻方分成了三类,每类又有各种各样的填写方法。这里对于这三类幻方,仅举出一种方便手工填写的方法。1、奇数阶幻方n 为奇数 (n=3,5,7,9,11) (n=2*k+1,k=1,2,3,4,5)奇数阶幻方最经典的填法是罗伯特法(也有人称之为楼梯方)。填写方法是这样:把 1(或最小的数)放在第一行正中;
3、按以下规律排列剩下的 n*n-1 个数: (1)、每一个数放在前一个数的右上一格;(2)、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列; (3)、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;(4)、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内; (5)、如果这个数所要放的格已经有数填入,处理方法同(4)。这种写法总是先向“右上”的方向,象是在爬楼梯。2、双偶阶幻方n 为偶数,且能被 4 整除 (n=4,8,12,16,20) (n=4k,k=1,2,3,4,5)先说明一个定义:互补:如果两
4、个数字的和,等于幻方最大数和最小数的和,即 n*n+1,称为互补。先看看 4 阶幻方的填法:将数字从左到右、从上到下按顺序填写:1 2 3 45 6 7 89 10 11 1213 14 15 16这个方阵的对角线,已经用蓝色标出。将对角线上的数字,换成与它互补的数字。这里,n*n+1 = 4*4+1 = 17;把 1 换成 17-1 = 16;把 6 换成 17-6 = 11;把 11 换成 17-11 = 6换完后就是一个四阶幻方。16 2 3 135 11 10 89 7 6 124 14 15 1对于 n=4k 阶幻方,我们先把数字按顺序填写。写好后,按 4*4 把它划分成 k*k个方
5、阵。因为 n 是 4 的倍数,一定能用 4*4 的小方阵分割。然后把每个小方阵的对角线,象制作 4 阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。 下面是 8 阶幻方的作法:(1) 先把数字按顺序填。然后,按 4*4 把它分割成 2*2 个小方阵1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 28 29 30 31 3233 34 35 36 37 38 39 4041 42 43 44 45 46 47 4849 50 51 52 53 54 55 5657 58 59 60 61 62
6、63 64(2) 每个小方阵对角线上的数字,换成和它互补的数。64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62 63 13、单偶阶幻方n 为偶数,且不能被 4 整除 (n=6,10,14,18,22) (n=4k+2,k=1,2,3,4,5)这是三种里面最复杂的幻方。以 n=10 为例。这时,k=2(1)
7、把方阵分为 A,B,C,D 四个象限,这样每一个象限肯定是奇数阶。用楼梯法,依次在 A 象限,D 象限,B 象限,C 象限按奇数阶幻方的填法填数。A B C D 17 24 1 8 15 67 74 51 58 6523 5 7 14 16 73 55 57 64 664 6 13 20 22 54 56 63 70 7210 12 19 21 3 60 62 69 71 5311 18 25 2 9 61 68 75 52 5992 99 76 83 90 42 49 26 33 4098 80 82 89 91 48 30 32 39 4179 81 88 95 97 29 31 38 4
8、5 4785 87 94 96 78 35 37 44 46 2886 93 100 77 84 36 43 50 27 34(2) 在 A 象限的中间行、中间格开始,按自左向右的方向,标出 k 格。A 象限的其它行则标出最左边的 k 格。17 24 1 8 15 67 74 51 58 6523 5 7 14 16 73 55 57 64 664 6 13 20 22 54 56 63 70 7210 12 19 21 3 60 62 69 71 5311 18 25 2 9 61 68 75 52 5992 99 76 83 90 42 49 26 33 4098 80 82 89 91
9、48 30 32 39 4179 81 88 95 97 29 31 38 45 4785 87 94 96 78 35 37 44 46 2886 93 100 77 84 36 43 50 27 34(3) 将这些格,和 C 象限相对位置上的数,互换位置。92 99 1 8 15 67 74 51 58 6598 80 7 14 16 73 55 57 64 664 6 88 95 22 54 56 63 70 7285 87 19 21 3 60 62 69 71 5386 93 25 2 9 61 68 75 52 5917 24 76 83 90 42 49 26 33 4023 5
10、 82 89 91 48 30 32 39 4179 81 13 20 97 29 31 38 45 4710 12 94 96 78 35 37 44 46 2811 18 100 77 84 36 43 50 27 34(4) 在 B 象限任一行的中间格,自右向左,标出 k-1 列。(注:6 阶幻方由于 k-1=0 所以不用再作 B、D 象限的数据交换)92 99 1 8 15 67 74 51 58 6598 80 7 14 16 73 55 57 64 664 6 88 95 22 54 56 63 70 7285 87 19 21 3 60 62 69 71 5386 93 25 2
11、 9 61 68 75 52 5917 24 76 83 90 42 49 26 33 4023 5 82 89 91 48 30 32 39 4179 81 13 20 97 29 31 38 45 4710 12 94 96 78 35 37 44 46 2811 18 100 77 84 36 43 50 27 34(5) 将 B 象限标出的这些数,和 D 象限相对位置上的数进行交换,即可完成。92 99 1 8 15 67 74 26 58 6598 80 7 14 16 73 55 32 64 664 6 88 95 22 54 56 38 70 7285 87 19 21 3 60 62 44 71 5386 93 25 2 9 61 68 50 52 5917 24 76 83 90 42 49 51 33 4023 5 82 89 91 48 30 57 39 4179 81 13 20 97 29 31 63 45 4710 12 94 96 78 35 37 69 46 2811 18 100 77 84 36 43 75 27 34