第四次关于魔方阵的问题
http://expert.csdn.net/Expert/topic/1789/1789521.xml?temp=2.091616E-02
http://expert.csdn.net/Expert/topic/1767/1767284.xml?temp=.707348
http://expert.csdn.net/Expert/topic/1732/1732898.xml?temp=.3096125
什么是魔方阵?
魔方阵是由1至n*n(3 <= N <= 9)个数组成方阵的。要求横加、竖加、斜加都相等。
如1 2 3
4 5 6
7 8 9组成的魔方阵为:
6 1 8
7 5 3
2 9 4
横加、竖加、斜加都相等于15
当然,对于奇数阶的魔方阵可以有简便的方法。
(方阵转45度,之后数往里压,然后再交换)。
我现在并不想用这种取巧的办法。而是希望算出所有的可能排列之后,把符合魔方阵的排列显示出来,并统计一共有多少种排列方法。我以前编写过魔方阵问题的程序。利用递归。这种方法只能用于3阶,即上图。4阶魔方阵,机器就无法算出结果了。
有一个思路,可是无法编写出来代码。
每次两个数字交换位置,通过交换位置来排列出魔方阵的所有可能。
比如第一次是头两个数字交换位置,
第二次是第三个和第一个交换位置,
第三次是第三个和第二个交换位置…
谁能够用把这个思路的代码写出来?
http://expert.csdn.net/Expert/topic/1767/1767284.xml?temp=.707348
http://expert.csdn.net/Expert/topic/1732/1732898.xml?temp=.3096125
什么是魔方阵?
魔方阵是由1至n*n(3 <= N <= 9)个数组成方阵的。要求横加、竖加、斜加都相等。
如1 2 3
4 5 6
7 8 9组成的魔方阵为:
6 1 8
7 5 3
2 9 4
横加、竖加、斜加都相等于15
当然,对于奇数阶的魔方阵可以有简便的方法。
(方阵转45度,之后数往里压,然后再交换)。
我现在并不想用这种取巧的办法。而是希望算出所有的可能排列之后,把符合魔方阵的排列显示出来,并统计一共有多少种排列方法。我以前编写过魔方阵问题的程序。利用递归。这种方法只能用于3阶,即上图。4阶魔方阵,机器就无法算出结果了。
有一个思路,可是无法编写出来代码。
每次两个数字交换位置,通过交换位置来排列出魔方阵的所有可能。
比如第一次是头两个数字交换位置,
第二次是第三个和第一个交换位置,
第三次是第三个和第二个交换位置…
谁能够用把这个思路的代码写出来?
...全文
相关推荐
C语言魔方阵,并输出
这是一个用C语言写的魔方阵,是奇魔幻阵,很清晰,很好懂。
魔方阵的算法
魔方阵的算法原理: 魔方阵(1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放: 按 45°方向向右上走,每一个数存放的行比前一个数的行数减1,列数加1; (3) 如果行列范围超出矩阵范围,则回绕。 例如1在第1行,则2应放在最下一行,列数同样加1; 又如某个数在第n列,则下一个数应放在第一列,行数同样减1; (4) 如果按上面规则确定的位置上已有数,或上一个数是第...
魔方阵魔方阵魔方阵魔方阵魔方阵
魔方阵魔方阵魔方阵魔方阵魔方阵魔方阵魔方阵魔方阵魔方阵魔方阵魔方阵魔方阵
利用C语言玩转魔方阵实例教程
魔方阵 魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2…n的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。 如3×3的魔方阵: 8 1 6 3 5 7 4 9 2 魔方阵的排列规律如下: (1)将1放在第一行中间一列; (2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列); (3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;
魔方阵程序(完整版)C语言描述
搞了好久才搞出来的,真辛苦…… 兄弟们多给点分咯。 绝对完整版……


