奇数阶矩阵,横竖斜加起来都相等算法(罗伯法幻方) 您所在的位置:网站首页 九宫格得数都相等16 奇数阶矩阵,横竖斜加起来都相等算法(罗伯法幻方)

奇数阶矩阵,横竖斜加起来都相等算法(罗伯法幻方)

2024-01-06 05:24| 来源: 网络整理| 查看: 265

奇数阶矩阵,横竖斜加起来都相等:

给定奇数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 实验室设备网 版权所有