奇数阶矩阵,横竖斜加起来都相等算法(罗伯法幻方) | 您所在的位置:网站首页 › 九宫格得数都相等16 › 奇数阶矩阵,横竖斜加起来都相等算法(罗伯法幻方) |
奇数阶矩阵,横竖斜加起来都相等:
给定奇数N,形成N阶矩阵,使得横竖斜加起来都相等。比如N=3: 08 01 06 03 05 07 04 09 02 每一行,每一列,交叉斜加起来都等于15 算法思路分析过程:一、暴力解法:循环+递归实现全排列组合。此法思路简单,网上不少代码实现的,但是缺点也是很明显的,暴力愚蠢耗资源。 二、排列加上数学分析: 1、∵横竖斜之和全相等,∴每行每列之和=全数字之和/n。如果n=3,和=(1+2+3+……+9)/3=45/3=15。 2、又∵横竖斜之和全相等,推测出中心位置(x=n/2,y=n/2)的数字,为1-N^2的中心数字。比如N=3,坐标(1,1)位置的数字最可能是5。 三、罗伯法幻方(正解) 幻方是一种广为流传的数学游戏,据说早在大禹治水时就发现过。幻方的特点是:由自然数构成n×n正方形阵列,称为n阶幻方,每一行、每一列、两对角线上的数之和相等。法国人罗伯总结出了构造奇数阶连续自然数幻方的简单易行的方法“罗伯法”。下表就是一个用罗伯法排好的5阶幻方。 罗伯法的具体方法如下: 把1(或最小的数)放在第一行正中; 按以下规律排列剩下的n2-1个数: 1)每一个数放在前一个数的右上一格; 2)如果这个数所要放的格已经超出了顶行 |
CopyRight 2018-2019 实验室设备网 版权所有 |