回 帖 发 新 帖 刷新版面

主题:有那为高人知道幻方(魔方)的算法

有那为高人知道幻方(魔方)的算法,小弟愚蠢最好能给出求任意N*N的幻方的代码,谢谢!

回复列表 (共2个回复)

沙发

发信人: 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]

板凳

我在图书馆看到一本专门说魔方得书,用到矩阵变换,代码及其复杂,

我来回复

您尚未登录,请登录后再回复。点此登录或注册