幻方又称为魔方,方阵或厅平方。通常幻方由从1到n^2 的连续整数组成,其中n为正方形的行或列的数目。幻方有很多变形例如完全幻方、乘幻方、高次幻方、反幻方等。经过人们的研究,得到许多构建的方法,幻方唾手便可完成。
问题描述
将数填在纵横格数都相等的正方形图内,使得每一行、每一列和每一条对角线上的各个数之和都相等。
解决思路
幻方按照阶数的数字属性不同,可分为奇数阶、双偶阶、单偶阶。每一种都有固定的解决方案。程序中#后标注的内容即为方法步骤。
Python3代码
#引入库
import numpy as np
1,奇数阶幻方
def OddMagic(jieshu):
#存储幻方结构
huanfang=np.zeros((jieshu,jieshu))
#需要填写的数字列表
listnum=list(range(1,jieshu**2+1))
#第一行中间填1
i=0
j=int(jieshu/2)
#记录填写的个数
count=0
while count
huanfang[i][j]=listnum[count]
#记录i,j
cc=i
dd=j
#超出了第一行,则填到最底下一行
if i-1<0:
i=jieshu-1
else:
i-=1
#超出了最右边一列,则填到最左边一列
if j+1==jieshu: