书说一出,话分两头。上回说到奇数阶幻方的构造,这是幻方构造里最简单的了。这回说说双偶阶幻方的构造,其实并不比奇数阶幻方难多少。

首先认识一个数,叫——双偶数,指的是能被4整除的数,如:4、8、16.这样的数能被四整除(废话嘛),所以构成的矩阵可以分割成4*4的方阵。

其次,再认识一个数叫幻数,取决于n——n*n+1。

好了,预备工作到此为止,开始构造。主要步骤如下:

1.构造出来n*n的矩阵,从一开始依次填到n*n

2.把矩阵分成4*4的的小块(知道为什么要用双偶数了吧)

3.每个小块找到主对角线和副对角线,用幻数减去相应的值得到新值。

构造完毕。

#!/usr/bin/env python3
#双偶阶幻方
n=int(input("请输入一个双偶数(n<=24):"))
Magic=[([0]*n)for i in range(n)]

m=1
k=n*n+1

for i in range(n):
for j in range(n):
Magic[i][j]=m
m=m+1

for i in range(n):
for j in range(n):
j0=j%4
i0=i%4
if i0==j0 or i0+j0==3:
Magic[i][j]=k-Magic[i][j]

for i in range(n):
for j in range(n):
print(“%3d”%Magic[i][j],end=’ ‘)
print()

input(“Press to end”)

作者 hsyyf

《幻方构造(二)》有2条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注