幻方阵
- 格式:doc
- 大小:706.50 KB
- 文档页数:21
魔方阵算法及C语言实现1 魔方阵概念魔方阵是指由1,2,3……n2填充的,每一行、每一列、对角线之和均相等的方阵,阶数n = 3,4,5…。
魔方阵也称为幻方阵。
例如三阶魔方阵为:魔方阵有什么的规律呢?魔方阵分为奇幻方和偶幻方。
而偶幻方又分为是4的倍数(如4,8,12……)和不是4的倍数(如6,10,14……)两种。
下面分别进行介绍。
2 奇魔方的算法2.1 奇魔方的规律与算法奇魔方(阶数n = 2 * m + 1,m =1,2,3……)规律如下:1.数字1位于方阵中的第一行中间一列;2.数字a(1 < a ≤ n2)所在行数比a-1行数少1,若a-1的行数为1,则a的行数为n;3.数字a(1 < a ≤ n2)所在列数比a-1列数大1,若a-1的列数为n,则a的列数为1;4.如果a-1是n的倍数,则a(1 < a ≤ n2)的行数比a-1行数大1,列数与a-1相同。
2.2 奇魔方算法的C语言实现1 #include <stdio.h> 2// Author: / 3// N为魔方阶数 4#define N 115 6int main()7{8int a[N][N]; 9int i;10 int col,row;1112 col = (N-1)/2;13 row = 0;1415a[row][col] = 1;1617for(i = 2; i <= N*N; i++)18 {19if((i-1)%N == 0 )20 {21 row++;22 }23else24 {25// if row = 0, then row = N-1, or row = row - 126 row--;27 row = (row+N)%N;2829// if col = N, then col = 0, or col = col + 130 col ++;31 col %= N;32 }33 a[row][col] = i;34 }35for(row = 0;row<N;row++)36 {37for(col = 0;col < N; col ++)38{39 printf("%6d",a[row][col]);40 }41printf("\n");42 }43return0;44 }3 偶魔方的算法偶魔方的情况比较特殊,分为阶数n = 4 * m(m =1,2,3……)的情况和阶数n = 4 * m + 2(m = 1,2,3……)情况两种。
n 阶幻方的同心方阵构造法本文根据n 阶幻方的定义,首先利用线性方程组的理论证明了:利用同心方阵的办法可以构造出任意阶幻方,进而结合幻方的特点,给出了n 阶幻方的具体构造方法. 一 同心方阵构造法定义;将自然数1,2,3...n 2排成n 行n 列的方阵,若每行每列及每条对角线上的n 个数字的和皆为常数,称这样的n 阶方阵为n 阶幻方.这个常数称为幻方常数.同心方阵构造法是一种递推的方法.假定n 阶幻方已经做出,就依n 阶幻方为基础,在四周加上一层框子,即在第一行的上边,在第n 行的下边,各加上一行,在第一列的左边,在第n 列的右边,各加上一列.构造出一个n+2阶方阵,新的n+2阶幻方的中间部分是一个n 阶幻方,它是由原来的幻方的各元素分别加上2n+2形成的.n+2阶幻方的外围部分(即第一行,第n+2行,第一列,第n+2列所形成的正方形框子)是由数1,2,3, (2))2(+n 中的前2n+2个数,及后2n+2个数,按照下述要求构成的(1)使正方形各边上的n+2而数的和等于n+2阶的幻方常数k.(2) 使正方形上下两边,左右两边相对元素的和,及对角线两顶点元素的和都等于1)2(2++n .这样构成的n+2阶幻方的方法称为同心方阵构造法容易证明二阶幻方是不存在的.三阶幻方容易做出,四阶阶幻方见[1].我们以三阶,四阶幻方为基础,根据本文所给出的方法,可以构造出任意阶幻方.二 同心方阵构造法的理论基础⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡++++++++++++++22122322211111233122212111131211...*...**............***...**...n n n n n n n n n n n n n n x x x x x x x x x x x x x x x x 根据同心方阵构造法得到以下4n+4个未知数2n+6个线性方程构成的线性方程组(令H n =++1)222()- 2 - ................2331222121211211231322122211........左右相对....右上角与左下角................上下相对.....左上角与右下角H x x H x x H x x H x x H x x H x x H x n n n n n n n n n n n =+=+=+=+=+=+=++++++++++++ 左)...上)...下)..右)........(.....(.....(....(....2121112112112222212222212111K x x x K x x x K x x x K x x x H x x n n n n n n n n n n n n n =+++=+++=+++=+++=++++++++++++++ (其中K 为幻方常数)这个线性方程组与常数项组成的增广矩阵如下:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡.00...00101...010100...00100...00000...000011...11111...11100...000000...00010...00010...101010...00000...00011...000000...000..........................00...00000...110000...00000...00000...001100...00000...00100...000010...00001...00000...000001...000........................00...10000...000000...10000...01000...000000...01010...00000...000000...001K K K K H H H H H H H H利用线性代数的知识,用矩阵的初等变换,将其化简(具体化简过程从略)成如下形式:- 3 -⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-------------00 (00)000...000000...000000...00000...000000...00011...11100...000000...0002221...11010...101000...00000...00011...000000...000............................................................00...00000...110000...0002221...11010...100100...00011...11000...000010 (0000)1 (00)000...000001...000............................................................00...10000...000000...10000...01000...000000...01010..00000...000000...001K H K H H K H K H H H H H由上面的矩阵可以看出;系数矩阵与增广矩阵的秩相等,可知线性方程组有解.这就证明了同心方阵构造法的可行性.同时还可以得到线性方程组的一般解.1221231322122211........................+++++++-=-=-=-=n n n n n n n x H x x H x x H x x H x 2212232221211124412331221223222124232222122322212423212212232221...........................2......22......22...++++++++++++++++++++++++++++++++++++++++-----=-=-=-=----------=+++++++++-=+++++-=n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n x x x x K x x H x x H x x H x x x x x x x x H K x x x x x x x x K H x x x x x K H x从而可知;这4n+4个未知数,其中2n+4个可由其它2n 个变量线性表出.即线性方程组中有2n 个自由未知量.这些自由未知量可以从数列1,2,…,2)2+n (中的前面2n+2个数,或从后面2n+2个数中选定.便可以由以上公式确定线性方程组的解.这就完成了证明.利用上述公式作具体的幻方,还有一些技术性的问题需要解决.就是要在指定的数集中- 4 - 求解.即自由未知量在4n+4个数中选定,其它未知量也必须在这4n+4个数中选定.4n+4个未知量与4n+4个自然数构成一一对应.下面给出一个具体的求解的办法.供读者参考.读者还可找到更巧妙的解.三 奇幻方的构造方法3.1奇幻方的构造法(n=2m+1)假定2m-1阶幻方已经做出,我们要作2m+1阶幻方. 3.2排序外围正方形四边数字的个数,m m m 8)12()1222=--+(前4m 个数字由小到大排序,后4m 个数字由大到小排序,两个数列构成一一对应如下:)1(..........).........41(14)12....(,.........,,,1)12....(,2)12...(1)12...()12(4...............,.,................................,,.........3.............,.........2........,.........122222m i m m i m m m m mi 到从+-+∙∙∙+-+∙∙∙-+-++∙∙∙∙∙∙上下两个相对的数的和都等于 1)12(2++=m H3.3配置上下两行从(1)中,将排好的4m 对数中截取前2m+1对,配置成上下两行,如下:(为方便计记a m =+2)12())2...(,...,2,1...,.........,...,2,11.2..........12...........122...22.......,.2........m i m i m i i a m a i a i ==+∙∙∙-∙∙∙+--∙∙∙+-∙∙∙ 由于幻方常数)122)(12(2)4411()12()12(])12(....21[1212222+++=+++++=+++++=m m m m m m m m m k 计算上下两行的和)12(...................................................)12)(12().1)12()(12(12)12(121212)12()12()12(..).........132)(12()12)(1)(12()12)(1()1(222)2(2)2(2)22(22211122111++++=+++=+++=++=++=++-++-++++=+++=++=+=-++=-++=-++=-++-+=∑∑∑∑∑∑=====m m k m m m m m m m m m m ma m a m i i a S m m k m m m m m m m m a m m a m ma ma a m m a a m a i a i S mmi mi mi m i m i 少比下=多比上- 5 -所以需要对配置的两行进行必要的调整.3.4调整对(2)作如下的调整,把第二行中的1换成1+2m+1,把3换成3+2m+1,…,把2i+1换成2i+1+2m+1,…,把2m-1换成2m-1+2m+1=4m,与它们对应的第一行的数也随着变化.调整后的两行成如下形式:)3,.......(1..,.........112........),........(2...,122.,1)(2....,,.........2m i m i m i m i a m a i m a i 到从到从+∙∙∙+∙∙∙+--∙∙∙++-∙∙∙ km m m m m m m m m m m m m m m ma m i m i a m i m i a S km m m m m m m m m m m m m m m m m a m m a m m ma ma i m a i m a i m a i S mi mi mi mi m i m i =+++==++++=+++++=++++=+++++-=+++++-==+++=-+++=-+++=+-++=+-+=-++-=-++--+=-+++-+=∑∑∑∑∑∑======)122)(12()12)(12()12()12()12(12212)2212(12)(2)12()122)(12()132)(12(])12)(1)[(12()12()12)(1()12()1(222]1222[2]1)2([222221112222111下上3.5 组合左右两列 确定四角元素从4m 对数中选出2m+1对后,余下2m-1对,组成左右两列如下:)4.......(2..........1122........22222.........12m i m i i m i a i m a i 到从到从∙∙∙-+∙∙∙+-∙∙∙+--∙∙∙- 241464)122)(12(1641244)12)(1()12()12)(1()12)(1()12222()122()22()122()22(23223223222221+=-+++=+++=-+=--+++=+-++=+-+=++-+=++++-+=-+++-+=-+++-=∑∑∑∑∑=====m S k m m m m m m k m m m m m m m m m m m m m ma m a m a i m i a a i m i a a i m i a S mi mi mi mi mi 右右由于4m+2=2m+(2m+2)由于4m+2可以拆成2m+2和2m,观察(3)中2m 在上面一行,2m+2在下面一行,就把2m 放在右上角,把2m+2放在右下角即可.其它两个角的元素是(3)中2m 和2m+2对应的另- 6 - 一行上的数,把上行中其余的数加在2m-1幻方的上面下行中对应的数放在下面相对应的位置上.(4)中的上行加在左边,下行对应的数加在右边相对的位置上.这就完成了加边的工作.作出了2m+1阶幻方.四 偶幻方的构造方法(n=2m)4.1偶幻方的构造法(n=2m )假定2m 阶幻方已经做出,我们要作2m+2阶幻方. 4.2排序外围正方形四边数字的个数,48)2()2222+=-+m m m (前4m+2个数字由小到大排序,后4m+2个数字由大到小排序,两个数列构成一一对应如下:)5(..........).........24...1..(14)22.(.1)22.(2)22...(1)22...()22(24.............................................,3...........,.........2..........................,.........122222+--+∙∙∙+-+∙∙∙-+-+++∙∙∙∙∙∙m i m m i m m m m m i 到从 上下两个相对的数的和都等于 1)22(2++=m H4.3配置上下两行从(5)中,将排好的4m+2对数中截取前2m+2对,配置成上下两行,如下:(为方便计记b m =+2)22()).6........(....,......,2,.1.2.2..,..............2...........2....2212.,...12.,12.........12......m i m i m b i b m b i b m i ∙∙∙=+∙∙∙-∙∙∙+---∙∙∙+-+∙∙∙- )1)(1()1)22)[(12(])22(21[22122++=+++=++∙∙∙+++=b m m m m m k 计算上下两行的和1)2)(1(1)1(+++=++=m k b m S m k b m S 多比下少比上所以需要对配置的两行进行必要的调整.4.4 调整对(6)作如下的调整,把第一行中的2m+1换成2m+1+m+2=3m+3,那么第二行的b-2就换成b-3m-2,将第二行的2m+2换成2m+3,那么第一行的b-2m-1就换成b-2m-2,调整后的两行成如下形式:).7........(....,.....,...2,1.3.2..,..........2........23....2222.,...12.,33........12......m i m i m b i b m b i b m i =+∙∙∙--∙∙∙+---∙∙∙+-+∙∙∙-- 7 -kb m m b b m m m b i i b S kb m m b mb m b m i b i S mi mi mi m i =++=+-++=++--+++-==++=+++=--++++-+-=∑∑∑∑====)1)(1(1)2(32232)22()1)(1(12233]12[)12(1111下上4.5 组合左右两列 确定四角元素 n=2m,其中m 分为奇偶两种情况. 4.5.1 m=2t+1从4m+2对数中选出2m+2对后,余下2m 对,组成左右两列如下:)8..(....................1...2..................................123......1)23(.1)(2......1)(2......22.......2.......23.....23........).....(2.).....(2...........12..12+∙∙∙++∙∙∙++-∙∙∙++∙∙∙++-+-∙∙∙--∙∙∙+∙∙∙+-∙∙∙+--+t i i m i m b i m i m b m m b i m b i m i m b i m m b m 到从11)1)(1(2)2()2)(12()2()2()2()123()123()122()122(22212121212+-=-+++=++=+=+=++=+++++=++++--+++++--+++-=∑∑∑∑+=+=+=+=m b S k b m mb b m k m mb b m b t b t b t b i m i m b i m i m b m m b S t i t i t i t i 右右 从(7)中第一行找到b-2m-2,由于b-m+1=(b-2m-2)+(m+3)而3)22()1()22(+=---+-=----m m b m b m b S k 右由于第二行2,4,6,…,2m 中,必有m+3=2t+1+3=2t+4(为偶数)于是就把b-2m-2放在右上角,把m+3放在右下角即可.其它两个角的元素是(7)中b-2m-2和m+3对应的另一行上的数。
第七讲幻方和数阵图(一)(1)把1到9这9个数填到3行3列的格子里,使每一行,每一列,每条对角线上的三个数字的和都相等,这样的数学游戏叫做幻方,像这样的3行3列的幻方叫三阶幻方。
(2)在三阶幻方中任意行,任意列或任意一条对角线上的3个数字的和叫幻和,如:7+5+3=15 4+3+8=15 6+5+4=15 这个三阶幻方的幻和是15 (3)除三阶幻方以外,常见的幻方还有四阶幻方,五阶幻方,六阶幻方四阶幻方五阶幻方六阶幻方三阶幻方的口诀是:九子斜排上下对易左右相更四维挺出例1:用3、4、5、9、10、11、15、16、17这九个数,编制一个三阶幻方,它的幻和是多少?幻和为30总结:满足一下两个条件中任意一条的九个数,就可以做填三阶幻方的游戏:(1)把九个数从小到大排列,组成了等差数列;(2)把九个数从小到大排列后,每三个数分为一组,每一组都是等差数列,而且组与组之间也是等差数列。
幻和是中间这个数的三倍三阶幻方的幻和=正中间的数 3例2:在右边的方格里填入适当的数,使它成为一个三阶幻方。
三阶幻方的幻和=正中间的数⨯3 幻和:8⨯3=24 练习:1、用2、4、6、8、10、12、14、16、18这九个数编制三阶幻方,并求幻和。
2、用1、2、3、7、8、9、13、14、15这九个数编制三阶幻方,并求幻和。
3、在右边的三阶幻方的空格内填入适当的数,使幻和等于27.4、在右边的三阶幻方的空格内填入适当的数,使它成为一个三阶幻方。
数阵图:把一些数按照一定的要求排列成各种各样的图形。
例3:在下面的三角形数阵图的3个 内的数的和是12例4:在下面图中的内,填上适当的数,使每条线上三个于13。
例5:把10,20,30,40,50,这五个数填入图中的使每条线段的三个数的和相等。
例6:把1,2,3,4,5,6,7这七个数字填入图中的内,使每条线上的内的3个数的和相等。
练习:1、在正方形数阵图中的内填入适当的数使每条线上的3个数的和等于21.2、把10到20这11个数填在图中的内,使每条线段上三个数的和等于45.3、把3到7这五个数分别天入“T”2形和“十”字形的方格内,使横竖两行的3个数的和相等。
幻方解法
幻方,就是对于一个n×n的方阵,将1—n²这n²个数填入其中,使每行每列以及对角线上的数字之和都相等的方阵。
幻方分为奇数阶幻方(n=2k+1)、单偶数幻方
(n=4k+2)、双偶数幻方(n=4k)三种,每种幻方解法不同,但都有其固定的解。
下面我来具体介绍下幻方的解法:
1.奇数阶幻方
①将1填入第一行中间位置
②向右上方向依次填入
③如果上方出格了,则将其填入最后一行与其同列的位置
④如果右方出格了,则将其填入第一列与其同行的位置
⑤如果右上都出格,则将其填入第一列最后一格
⑥如果将要填入的方格已有数字,则填入上一个数字的下方
这里已三阶幻方为例:
2.双偶数阶幻方(n=4k):
①先将1,2,3……n²依次填入方阵中
②拟出方阵对角线
③对角线上数字不动,将其余所有数字移至与其中心对称的位置
这里以四阶幻方为例
↓
↓ 3.单偶数阶幻方(n=4k+2):
①先将1,2,3……n平方依次填入方阵中
②拟出对角线,将对角线上所有数字移至与其中心对称的位置。
③从方阵左半部分的每一列数字中抽出一对上下对称的数字互换位置(每一列抽出一对)
④从方阵上半部分的每一行数字中抽出一对左对称的数字互换位置(每一行抽出一对)
注:已经移动过或换过位置的数字不能再移动或换位
这里以六阶幻方为例:
↓
↓②↓
↓
↓③↓
↓
↓④↓。
幻方矩阵c语言-回复题目:幻方矩阵——解密C语言中的神秘数字艺术引言:幻方矩阵是一种神秘而古老的数学艺术,它不仅具有神秘的数学属性,而且已经广泛应用于密码学、游戏设计等领域。
在C语言中,我们也可以通过编程来实现幻方矩阵。
本文将一步步解密幻方矩阵的奥秘,带你领略数字之美。
第一部分:幻方矩阵的概念及特性(300-500字)1.1 什么是幻方矩阵?幻方矩阵是指一个正方形的方阵,其中每一行、每一列以及对角线上的元素之和均相等。
即使在不同的大小的幻方矩阵中,这个和也是相等的,被称为幻方常数。
1.2 幻方矩阵的特性- 幻方矩阵的阶数必须是奇数(1, 3, 5, 7, ...),并且大于等于3。
- 左上角的数字一般为1,依次向右、向下递增。
- 按照一定规则填充剩下的数字,使每行、每列和对角线上的数字之和均相等。
第二部分:使用C语言实现幻方矩阵(800-1000字)2.1 初始化矩阵(代码)我们首先需要使用C语言创建一个空的方阵,并初始化为0。
可以使用二维数组来表示方阵,并使用循环语句来初始化。
2.2 填充矩阵(代码)接下来,我们需要按照幻方矩阵的规则填充剩下的数字。
具体来说,我们从第一行的中间列开始,逐步向右上角移动,并按照一定规则填充数字。
当移动超出矩阵边界时,我们会沿着边界回到矩阵的另一侧继续填充。
2.3 检查幻方矩阵(代码)最后,我们需要编写代码来检查生成的矩阵是否是一个有效的幻方矩阵。
我们可以分别计算每行、每列以及对角线的和,并将其与幻方常数进行比较。
如果各个和相等,则说明这是一个有效的幻方矩阵。
第三部分:应用与扩展(300-500字)3.1 应用领域幻方矩阵在密码学、游戏设计等领域有广泛的应用。
在密码学中,可以使用幻方矩阵来加密和解密信息。
在游戏设计中,可以将幻方矩阵应用于谜题设计,为游戏增加难度和趣味性。
3.2 扩展思考除了奇数阶的幻方矩阵,我们还可以尝试实现偶数阶的幻方矩阵,或者探究幻方矩阵的数学属性和规律。
第6讲幻方和数阵图传说在五千年前,大禹治水的时代,人们在黄河中发现一只大龟,龟背上有一些奇怪的图案,经过破译,人们将龟背上的神奇的图案译成了如下图这样的数阵图,也称做幻方。
幻方和数阵是我国文化遗产之一,早在公元前4世纪就有“河图”、“洛书”的传说与记载。
到了宋朝,杨辉对幻方已有较详细的记述,并探索出一些编制方法。
明朝程大位、清朝张潮等人,创制了绚丽多彩的幻方与数阵图式,其中九宫图是最简单的三阶幻方。
将三阶幻方推广,结合某些几何图形,把一些数字填入图形的某种位置上,并使数字满足一定的约束条件,这类问题,通常被称为“数阵图”。
幻方是特殊的数阵图。
大约在15世纪初,幻方传到国外,引起了欧洲很多数学家的兴趣,发现许多新成果。
人们发现幻方不仅仅是一种数字游戏,而且与实验方案的设计及一些高深数学分支有关,幻方已成为数阵图中最重要的课题,是数学研究中的一个重要分支。
数阵图大致分三种:封闭型数阵图、开放型数阵图和复合型数阵图。
幻方的特点:一个幻方每行、每列、每条对角线上的几个数的和都相等。
这个相等的和叫“幻和”。
要求在n行n列的方格里,既不重复又不遗漏地填上n×n个连续的自然数。
这些自然数所组成的一列数有极强的规律性,按顺序排列后,每一项都比它前面的一项大1,即知识梳理它们构成了差相等的数列,是等差数列。
因此在解答这类问题时,常用的知识有:1.等差数列的求和公式总和=(首项+末项)×项数÷22.数字的奇偶性奇数±奇数=偶数偶数±偶数=偶数奇数±偶数=奇数可简记为:同性为偶,异性为奇(注:同性是同奇或同偶,异性是指一奇一偶)。
数阵图【例1】★如图所示,在三个圆圈中各填入一个自然数,使每条线段两端的两个数之和均为奇数。
请问这样的填法存在吗?如不存在,请说明理由;如存在,请写出一种填法。
【解析】不存在,设所填的数分别是a,b,c,如图所示。
假设 a+b=奇数. a+c=奇数,b+c=奇数,左边=2(a+b+c),是偶数,右边=三个奇数相加,是奇数,偶效≠奇数。
幻方矩阵,怎么实现,某老师居然对我说用穷举,汗幻方矩阵,怎么实现,某老师居然对我说用穷举,汗幻方是一种很有意思的数字矩阵,在很早著名的九宫八卦阵就与幻方有关。
幻方的定义为:1 到N*N 的整数填入N*N的方格中,每行和每列以及对角线的数字之和必须是相等的。
你作为八卦公司的顶级程序员,现在需要你解决一个问题,将任意奇数阶的幻方找出来。
你们老师脑袋坏了。
#include<iostream>#include<cmath>#include<cstdio>#include<vector>#include<cstring>#include<cstdlib>using namespace std;int main(){int n;printf("input the step of the martix:\n");scanf("%d",&n);int a[20][20]={0};int i,j=0,k=n/2;a[j][k]=1;for (i=1;i<n*n;i++){j=j+1;k=k-2;if (j>n-1) j=0;if (k<0) k=k+n;while (a[j][k]!=0){k--;if (k<0) k+=n;}a[j][k]=i+1;}for (j=0;j<n;j++){for (k=0;k<n;k++)printf("%2d ",a[j][k]);printf("\n");}return 0;}。
三阶幻方阵原理三阶幻方阵是一种基于数学原理的特殊矩阵,其每行、每列和对角线上的元素之和都相等。
在这篇文章中,我们将探讨三阶幻方阵的原理及其特点。
让我们来了解一下三阶幻方阵的基本概念。
三阶幻方阵是一个3×3的矩阵,其中包含从1到9的不重复数字。
这些数字被排列在矩阵的九个位置上,使得每行、每列和对角线上的数字之和都相等。
这个相等的和被称为幻方阵的常数。
三阶幻方阵的原理可以用数学方法来解释。
首先,我们可以确定幻方阵的中心位置必然是5,因为它是1到9之间唯一的奇数。
接下来,我们可以根据对角线的对称性,将幻方阵分为四个小的2×2的子矩阵。
通过观察我们可以发现,每个子矩阵中的对角线上的两个数字之和必然等于10。
这是因为每个子矩阵中的两个数字都是对称的,它们的和必然等于10。
因此,我们可以根据这个特点来构建三阶幻方阵。
我们将5放置在幻方阵的中心位置。
然后,我们根据对角线的对称性,将1放置在右上角的位置,将9放置在左下角的位置。
接下来,我们将3放置在左上角的位置,将7放置在右下角的位置。
现在,我们可以根据对角线的对称性,将2放置在左上角的位置,将8放置在右下角的位置。
然后,我们将4放置在右上角的位置,将6放置在左下角的位置。
我们得到了一个符合三阶幻方阵原理的矩阵:2 9 47 5 36 1 8我们可以验证一下这个矩阵是否满足幻方阵的条件。
首先,我们可以计算每行、每列和对角线上的数字之和:第一行:2 + 9 + 4 = 15第二行:7 + 5 + 3 = 15第三行:6 + 1 + 8 = 15第一列:2 + 7 + 6 = 15第二列:9 + 5 + 1 = 15第三列:4 + 3 + 8 = 15主对角线:2 + 5 + 8 = 15副对角线:4 + 5 + 6 = 15我们可以看到,每行、每列和每个对角线上的数字之和都等于15,这证明了这个矩阵是一个三阶幻方阵。
三阶幻方阵具有一些特点。
首先,它的中心位置必然是5,这是因为它是1到9之间唯一的奇数。
趣味数学之幻方小诀窍在趣味数学的探讨中,重要的题材之一是魔方阵。
魔术方阵是由西方的"Magic square"翻译过来的,当然,东方也有不同的别称。
在中国我们称之为幻方,我国古代则有纵横图之称,而日本则称之为魔方阵。
所谓n阶魔方阵,乃是将1到n2个整数排成一个nXn阶方阵,使得下面2n+2个和相等:(1)每一列中n个数之和,共得n个和;(2)每一行中n个数之和,共得n个和;(3)每一对角在线n个数之和,共得两个和。
此每一个和称为魔数=2)1(2nn。
(一)由计算机测试的结果知道,二阶幻方不存在,当阶数由三阶增至四阶时,幻方个数由8个增至7040个,可见幻方数目增加得十分快速。
(二)(1)奇数阶幻方的建构法,中西方都有不同的成就,最著名的有杨辉法和达拉卢庇法,以下依序说明:杨辉法:以方阵的中间位置之下一格做为出发点,再向右下方依序填入数字。
若右下格已有数字则往下退两格,再继续往下填数字,直到填完为止,若超出格子便跳到方阵的另一头。
达拉卢庇法:以方阵中间一行最上方的一格为出发点,再向右上方依序填入数字,若右上格已有数字则往下退一格,再继续往下填数字,直到填完为止,若超出格子便跳到方阵的另一头。
(2)由杨辉法与达拉卢庇法的推广可以得到两对正交的拉丁方阵(两个方阵之中的符号两两配对后,没有重复的配对,称为正交),可以推出许多不同的幻方,但仍受制于对角线,若改以正交对角线拉丁方阵构做,应可产生更多种幻方。
(二)由四阶幻方造法推广得到偶数阶幻方的造法,因为偶数阶自然方阵中各行、各列之和成等差关系,由于n是偶数故可得一个左右对称的和(若以上下各数之和来讨论,也可以得到上下对称的结果),且两对角线的和恰等于魔数,所以可以利用行与行、列与列(对称于中心轴)的互换而造出幻方。
在我十来年的数学教育教学中,每当学生接触到幻方时,他们都对幻方近乎着迷,为大千数学世界中的这些毫不起眼的数字而折服。
于是通过我自己的教学不断总结,下面对幻方的小诀窍予以说明。
奇阶幻方当n为奇数时,我们称幻方为奇阶幻方。
可以用Merzirac法与loubere法实现,根据我的研究,发现用国际象棋之马步也可构造出更为神奇的奇幻方,故命名为hor se法。
偶阶幻方当n为偶数时,我们称幻方为偶阶幻方。
当n可以被4整除时,我们称该偶阶幻方为双偶幻方;当n不可被4整除时,我们称该偶阶幻方为单偶幻方。
可用了Hire 法、Strachey以及YinMagic将其实现,Strachey为单偶模型,我对双偶(4m阶)进行了重新修改,制作了另一个可行的数学模型,称之为Spring。
YinMagic是我于2002年设计的模型,他可以生成任意的偶阶幻方。
在填幻方前我们做如下约定:如填定数字超出幻方格范围,则把幻方看成是可以无限伸展的图形,如下图:Merzirac法生成奇阶幻方在第一行居中的方格内放1,依次向左上方填入2、3、4…,如果左上方已有数字,则向下移一格继续填写。
如下图用Merziral法生成的5阶幻方:17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9loubere法生成奇阶幻方在居中的方格向上一格内放1,依次向右上方填入2、3、4…,如果右上方已有数字,则向上移二格继续填写。
如下图用Louberel法生成的7阶幻方:30 39 48 1 10 19 2838 47 7 9 18 27 2946 6 8 17 26 35 375 14 16 25 34 36 4513 15 24 33 42 44 421 23 32 41 43 3 1222 31 40 49 2 11 20horse法生成奇阶幻方先在任意一格内放入1。
向左走1步,并下走2步放入2(称为马步),向左走1步,并下走2步放入3,依次类推放到n。
在n的下方放入n+1(称为跳步),再按上述方法放置到2n,在2n的下边放入2n+1。
如下图用Horse法生成的5阶幻方:77 58 39 20 1 72 53 34 156 68 49 30 11 73 63 44 2516 78 59 40 21 2 64 54 3526 7 69 50 31 12 74 55 4536 17 79 60 41 22 3 65 4637 27 8 70 51 32 13 75 5647 28 18 80 61 42 23 4 6657 38 19 9 71 52 33 14 7667 48 29 10 81 62 43 24 5一般的,令矩阵[1,1]为向右走一步,向上走一步,[-1,0]为向左走一步。
则马步可以表示为2X+Y,{X∈{[1,0], [-1,0]},Y∈{[0,1], [0,-1]}}∪{Y∈{[1,0], [-1,0]},X∈{[0, 1], [0,-1]}}。
对于2X+Y相应的跳步可以为2Y,-Y,X,-Y,X,3X,3X+3Y。
上面的的是X 型跳步。
Horse法生成的幻方为魔鬼幻方。
Hire法生成偶阶幻方将n阶幻方看作一个矩阵,记为A,其中的第i行j列方格内的数字记为a(i,j)。
在A内两对角线上填写1、2、3、……、n,各行再填写1、2、3、……、n,使各行各列数字之和为n*(n+1)/2。
填写方法为:第1行从n到1填写,从第2行到第n/2行按从1到进行填写(第2行第1列填n,第2行第n列填1),从第n/2+1到第n行按n到1进行填写,对角线的方格内数字不变。
如下所示为6阶填写方法:1 5 4 32 66 2 3 4 5 11 2 3 4 5 66 5 3 4 2 16 2 4 3 5 11 5 4 32 6如下所示为8阶填写方法(转置以后):1 8 1 1 8 8 8 17 2 2 2 7 7 2 76 3 3 3 6 3 6 65 4 4 4 4 5 5 54 5 5 5 5 4 4 43 6 6 6 3 6 3 32 7 7 7 2 2 7 28 1 8 8 1 1 1 8将A上所有数字分别按如下算法计算,得到B,其中b(i,j)=n×(a(i,j)-1)。
则A T+B为目标幻方(AT为A的转置矩阵)。
如下图用Hire法生成的8阶幻方:1 63 6 5 60 59 58 856 10 11 12 53 54 15 4941 18 19 20 45 22 47 4833 26 27 28 29 38 39 4032 39 38 36 37 27 26 2524 47 43 45 20 46 18 1716 50 54 53 12 11 55 957 7 62 61 4 3 2 64Strachey法生成单偶幻方将n阶单偶幻方表示为4m+2阶幻方。
将其等分为四分,成为如下图所示A、B、C、D四个2m+1阶奇数幻方。
A CD BA用1至2m+1填写成(2m+1)2阶幻方;B用(2m+1)2+1至2*(2m+1)2填写成2 m+1阶幻方;C用2*(2m+1)2+1至3*(2m+1)2填写成2m+1阶幻方;D用3*(2m+1) 2+1至4*(2m+1)2填写成2m+1阶幻方;在A中间一行取m个小格,其中1格为该行居中1小格,另外m-1个小格任意,其他行左侧边缘取m列,将其与D相应方格内交换;B与C接近右侧m-1列相互交换。
如下图用Strachey法生成的6阶幻方:35 1 6 26 19 243 32 7 21 23 2531 9 2 22 27 208 28 33 17 10 1530 5 34 12 14 164 36 29 13 18 11Spring法生成以偶幻方将n阶双偶幻方表示为4m阶幻方。
将n阶幻方看作一个矩阵,记为A,其中的第i行j列方格内的数字记为a(i,j)。
先令a(i,j)=(i-1)*n+j,即第一行从左到可分别填写1、2、3、……、n;即第二行从左到可分别填写n+1、n+2、n+3、……、2n;…………之后进行对角交换。
对角交换有两种方法:方法一;将左上区域i+j为偶数的与幻方内以中心点为对称点的右下角对角数字进行交换;将右上区域i+j为奇数的与幻方内以中心点为对称点的左下角对角数字进行交换。
(保证不同时为奇或偶即可。
)方法二;将幻方等分成m*m个4阶幻方,将各4阶幻方中对角线上的方格内数字与n阶幻方内以中心点为对称点的对角数字进行交换。
如下图用Spring法生成的4阶幻方:16 2 3 135 11 10 89 7 6 124 14 15 1YinMagic构造偶阶幻方先构造n-2幻方,之后将其中的数字全部加上2n-2,放于n阶幻方中间,再用本方法将边缘数字填写完毕。
本方法适用于n>4的所有幻方,我于2002年12月31日构造的数学模型。
YinMagic法可生成6阶以上的偶幻方。
如下图用YinMagic法生成的6阶幻方:10 1 34 33 5 2829 23 22 11 18 830 12 17 24 21 72 26 19 14 15 3531 13 16 25 20 69 36 3 4 32 27魔鬼幻方如将幻方看成是无限伸展的图形,则任何一个相邻的n*n方格内的数字都可以组成一个幻方。
则称该幻方为魔鬼幻方。
用我研究的Horse法构造的幻方是魔鬼幻方。
如下的幻方更是魔鬼幻方,因为对于任意四个在两行两列上的数字,他们的和都是34。
此幻方可用YinMagic方法生成。
15 10 3 64 5 16 914 11 2 71 8 13 12罗伯法:1居上行正中央,依次排开右上方。
右出格时写最左,上出格时写最下.每逢几个落一行.(几个是几*几的方阵中的几)【幻方在高中数学中的考查】“幻方”易在高中数学《数列》一章中以找规律或开放题的形式对考生进行考察。
通常以选择题为主。
考察的内容比较简单,通常为求N阶幻方行、列、对角线(其实它们都是相等的)上的数之和。
通常的方法是,从1一直加到N^2,再将得出的数除以N即可。
如3阶幻方,则1+2+3+……+9=45,45/3=15,即f(3)=15同理,4阶幻方,则1+2+……+16=136,136/4=34,即f(4)=34构造奇次幻方的一种方法幻方也叫纵横图,是最古老和最流行的数学游戏之一。
即对2n 个数构成的n 阶方表中,每行,每列及对角线之和均相等。
例如九宫(表1)每行,每列及对角线之和均为15,这是一个3阶幻方。
2阶幻方是不存在的,对于其他的n 阶幻方是能够构造出来的。
如本杰明•富兰克林曾构造过许多有趣的幻方,de la Loub ère 在17世纪发现了一种构造奇数阶幻方的方法(见文献1)。
对于偶数阶幻方构造可在Rouse Ball 书中找到(见文献2)。
本文利用行列式的性质及运算给出构造同心幻方(嵌套幻方,自中心向外辐射,去掉外层数字,内层仍为幻方)的一种方法。
表1 3阶幻方 表2 3阶幻方原基 表3 5阶幻方原基1、幻方的原基3阶幻方表1中每个元素均减去中心5,表1变为表2可看出每行之和,每列之和均为零,对角线之和也为零。
那么就称具有这样性质的方表叫幻方的原基。
这样的原基可以扩充到5阶,7阶,…,(2n+1)阶,且正负整数是成对出现的,中心为0。
例如5阶幻方原基如表3,显然⎩⎨⎧008765154321=++++-=++++x x x x x x x x x x (1)这样每行、每列之和及对角线之和均为零。
且外围16个数成对出现。
其中8个正数,8个负数,范围5到12和-12到-5之间的整数。
由里到外设为第一层,第二层。
那么2m+1阶幻方原基的第m 层共有8m 个整数,所以第m 层的整数个数为m m m 8)12()12(22=--+,且正整数,负整数均为4m 个.最小的正整数为1222+-m m ,(第m-1层有2)12(-m 个整数,去掉中心的0,正负整数是从1开始且成对出现的,则第m-1层最后的整数是,2221)12(22m m m -=--所以第m 层整数从1222+-m m 到m m m m m 2242222+=+-,负数从到)22(2m m +--()1222+-m m 的连续整数。
2.幻方原基的构造首先介绍两个行列式的性质:定理1:设的代数余子式,则是ij ij nnn n nn a A a a a a a a a a a D ,212222111211 =∑∑==+=+++++++++n i ijn j j nnn n n nn nn A x D x a x a x a x a x a x a x a x a x a 11221122221211212111(1)证明:记(1)式左边的行列式为111,D D D 添加一行一列构成将 的等值n+1阶行列式,即:nnn n n n nnnn n n n n n n na a a a a a a a a x x x x a x a x a x a x a x a x a x a x a x x x D21222211*********12222121121211121111110001---=+++++++++=nnn n n n a a a a a a a a a 212222111211-nnn n n a a a a a a x22221121111---+…+(-1)n+2x n1112211111,1,1,1------n n n n n a a a a a a上式右边诸行列式除外均按第一行展开,得:∑∑∑∑====+=+++=n j ni ij j n i in n n i i A x D A x A x D D 1111111 ■推论:如令),,2,1(n j x x j ==设D=nnn n n n a a a a a aa a a 212222111211的代数余子式。