问问题描述
答精选答案

先来科普一下什么叫 n 阶幻方。
看过射雕英雄传的人可能都记得,瑛姑闭关大半辈子,苦苦思索九宫格的问题,被黄蓉几句口诀就破解了。瑛姑算的那个,就是 3 阶幻方。什么是幻方:幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。行/列数为几,就叫几阶幻方。奇数幻方算法:奇数幻方和偶数幻方的算法是完全不一样的,所以我就分开来写。本文讲解奇数幻方。其中最经典的填法是罗伯法。先把 1 放在第一行正中;按以下规律排列剩下的(n×n-1)个数,具体步骤为:每一个数放在前一个数的右上一格;如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在底行且最左列;如果这个数所要放的格已经有数填入,那么就把它放在前一个数的下一行同一列的格内。我大学专业课上讲到幻方算法的时候,老师的比喻更贴切:把平面想像成一个球体,不断地向右上绕着球体填数,如果格子被占位,则向下一格重新开始绕圈,直至填满。大家可以想像一下,就象下图这样:把纸卷成球,按箭头方向绕圈填数代码:理解了罗伯法以后,就可以用以下 VBA 来写奇数幻方了:Sub 奇数幻方填写_数组记录()n = Val(InputBox("请输入[3-25]的奇数:
本文来自作者[jianxiongzhiyejishuxueyua]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/zhuanye/810143.html

评论列表(4条)
我是公众科技网的签约作者“jianxiongzhiyejishuxueyua”!
希望本篇文章《用1-25这25个数,采用“罗伯法”构造一个五阶幻方》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:先来科普一下什么叫 n 阶幻方。看过射雕英雄传的人可能都记得,瑛姑闭关大半辈子,苦苦思索九宫格的问题,被黄蓉几句口诀就破解了。瑛姑算的那个,就是 3 阶幻方。什么是幻方:幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。行/列数为几,就叫几阶幻方。奇数幻方算法:奇数幻方和偶数幻方的算法是完全不一样的,所以我就分开来写。本文讲解奇数幻方。其中最经典的填法是罗伯法。先把 1 放在第一行正中;按以下规律排列剩下的(n×n-1)个数,具体步骤为:每一个数放在