幻方又称为魔方,方阵或厅平方。通常幻方由从1到n^2 的连续整数组成,其中n为正方形的行或列的数目。幻方有很多变形例如完全幻方、乘幻方、高次幻方、反幻方等。经过人们的研究,得到许多构建的方法,幻方唾手便可完成。
一、问题描述
将数填在纵横格数都相等的正方形图内,使得每一行、每一列和每一条对角线上的各个数之和都相等。
二、解决思路
幻方按照阶数的数字属性不同,可分为奇数阶、双偶阶、单偶阶。每一种都有固定的解决方案。程序中#后标注的内容即为方法步骤。
三、Python3代码
#引入库
import numpy as np
1,奇数阶幻方
解决方案:第一行中间的空格填1,从这个格子开始,按数字顺序向右上方依次填充。如果右上方超出了第一行,则将该数字填到正方形的最后一行对应位置;如果超出了最右边的列,则填到最左边的列的对应位置,如果遇到下一个格子里已经有数字的,