递归-三阶幻方-JAVA-草稿

在中国古典文献中记载了洛书的传说:公元前 23世纪大禹治水之时,一只巨大的神龟出现于黄河支流洛水中,龟甲上有9种花点的图案,分别代表这9个数,而3行、3列以及两对角线上各自的数之和均为15,世人称之为洛书。中国汉朝的数术记遗中,称之为九宫算,又叫九宫图.宋数学家杨辉著《续古摘奇算法》把类似于九宫图的图形命 名为纵横图,书中列举3、4、5、6、7、8、9、10阶幻方。其中所述三阶幻方构造法:“九子斜排,上下对易,左右相更,四维挺出,戴九履一,左七右三,二四为肩,六八为足”,比法国数学家Claude Gaspar Bachet提出的方法早三百余年。

算法:

数组a是九宫格用到的9个数,第一行是数字,第二行是状态(1代表没用过,2代表用过)

数组b是九宫格。如下图:

使用以上数据结构

方法“put“表示使用数组x去填充数组y,填充其中第n个数字。


put方法

其中用过的数字标记为0,用完标记回1。如果不是最后一个,则递归填充,是则验证结果。

验证函数如下:


验证输出函数

验证函数没什么好说的。主函数如下:


主函数

运行结果如下:


运行结果

你可能感兴趣的:(递归-三阶幻方-JAVA-草稿)