主题:有那为高人知道幻方(魔方)的算法
cat
[专家分:0] 发布于 2002-08-21 17:05:00
有那为高人知道幻方(魔方)的算法,小弟愚蠢最好能给出求任意N*N的幻方的代码,谢谢!
回复列表 (共2个回复)
沙发
lanjingquan [专家分:510] 发布于 2002-08-28 09:11:00
发信人: Andor ( 手?, 信区: Programming
标 题: Re: 求教! 魔方阵的算法!!!!!
发信站: BBS 水木清华站 (Fri Jun 14 18:10:44 2002)
简单说一下吧:
奇数阶用折叠法:
3
2 _ 6 2 7 6
1 _ 5 _ 9 -> 9 5 1
4 _ 8 4 3 8
7
4k-阶则按先行后列顺序填满幻方, 然后切成 k*k 个 4*4 小块,
以整个幻方的中心为对称中心旋转所有小块的主副对角线.
4-阶的特例:
1 2 3 4 16 2 3 13
5 6 7 8 5 11 10 8
9 10 11 12 -> 9 7 6 12
13 14 15 16 4 14 15 1
(4k+2)-阶则先把最小的 (8k+2) 个数和最大的 (8k+2) 个数取出来,
用剩下的数填中间的 4k-阶幻方, 然后用取出来的数填满最外圈,
注意填的时候保持幻方性质, 具体做法你手算一下吧. 先后顺序其实无关.
【 在 Andor ( 手? 的大作中提到: 】
: google : 幻方 构造
: 我连不上, 你自己查查吧.
: 不是, 除了二阶以外所有自然数阶幻方都有解, 只是奇数特别容易而已.
--
※ 修改:·Andor 於 Jun 14 18:13:38 修改本文·[FROM: 166.111.68.150]
板凳
women [专家分:2540] 发布于 2004-03-06 12:34:00
我在图书馆看到一本专门说魔方得书,用到矩阵变换,代码及其复杂,
我来回复