先来科普一下什么叫 n 阶幻方。
看过射雕英雄传的人可能都记得,瑛姑闭关大半辈子,苦苦思索九宫格的问题,被黄蓉几句口诀就解开了。瑛姑算的那个,就是 3 阶幻方。
什么是幻方:
幻方(Magic Square)是一种将数字具体安排在正方形格子中,使每行、列和对角线上的数字和都相等的方式。
行/列数为几,就叫几阶幻方。
奇数幻方算法:
奇数幻方和偶数幻方的算法是完全明显不同的,故此,我就分开来写。本篇文章介绍奇数幻方。
这当中经典的填法是罗伯法。先把 1 放在第一行正中;根据下列规律排列剩下的(n×n-1)个数,详细步骤为:
每一个数放在前一个数的右上一格;
假设这个数想放的格已经超过了顶行既然如此那,就把它放在底行,也还是要放在右一列;
假设这个数想放的格已经超过了右列既然如此那,就把它放在左列,也还是要放在上一行;
假设这个数想放的格已经超过了顶行且超过了右列,既然如此那,就把它放在底行且左列;
假设这个数想放的格已经有数填入,既然如此那,就把它放在前一个数的下一行同一列的格内。
我大学专业课来说到幻方算法时,老师的比喻更贴切:把平面想像成一个球体,持续性地向右上绕着球体填数,假设格子被占位,则向下一格重新启动绕圈,直至填满。
各位考生可以想像一下,就象下图这样:
把纸卷成球,按箭头方向绕圈填数
代码:
理解了罗伯法以后,完全就能够用以下 VBA 来写奇数幻方了:
Sub 奇数幻方在内容框中填写_数组记录()
n = Val(InputBox("请输入[3-25]的奇数:", "n 阶幻方的阶数", 5)) '阶数输入框,默认输入5
If n Mod 2 = 0 Or n 3 Or n 25 Then MsgBox "阶数不可以为 " n: Exit Sub '假设阶数为偶数,或超过定义范围,则报错并退出
[a1].CurrentRegion = ""
[a1].Resize(n, n).Select
'清空并选择在内容框中填写区域
ReDim a(1 To n, 1 To n) '定义数组
r = 1: c = (n + 1) / 2 '第一行中间填入1
a(r, c) = 1
For i = 2 To n ^ 2
If r = 1 And c = n Then '到第1行末一列时
r = r + 1 '去下一行
ElseIf r = 1 Then '第1行,非末一列时
r = n: c = c + 1 '到末第n行,列+1
ElseIf c = n Then '到末第n列时
r = r - 1: c = 1 '到第1列,行-1
ElseIf a(r - 1, c + 1) Then '右上格已填不为空时
r = r + 1 '去下一行
Else '其他
r = r - 1: c = c + 1 '右上爬梯
End If
a(r, c) = i '顺序填数
Next
Selection = a
End Sub
运行效果:
要图,作业急,快快以上就是本文用1-25这25个数采用“罗伯法”构造一,用1-25这25个数填写下面的五阶幻方的全部内容
本文链接:https://www.china-share.com/kuaiji/202306251679388.html
发布于:华宇考试网(https://www.china-share.com/)>>> 经济师题库栏目(https://www.china-share.com/cjjjs/xuexiziliao/)
投稿人:网友投稿
说明:因政策和内容的变化,上文内容可供参考,终以官方公告内容为准!
声明:该文观点仅代表作者本人,华宇考试网系信息发布平台,仅提供信息存储空间服务。对内容有建议或侵权投诉请联系邮箱:e8548113@foxmail.com
关注本站了解更多关于文用1-25这25个数采用“罗伯法”构造一,用1-25这25个数填写下面的五阶幻方和经济师题库的相关信息。
用1-25这25个数,采取“罗伯法”构造一个五阶幻方? 先来科普一下什么叫 n 阶幻方。 看过射雕英雄传的人可能都记得,瑛姑闭关大半辈子,苦苦思索九宫格的问题,被黄蓉几句口诀就解开了。瑛姑算的那个,就是 3 阶幻方。 什么...
2023-06-25
公务员考试成绩怎样进行复查,公务员考试成绩复查有用? 各地方公务员考试,成绩核查情况需以报考单位的招收录取公告为准。 以2023上半年公务员考试作为例子: 四川考 对缺考、零分等情况特殊有异议的,应于成绩发布那天...
2023-06-25
提子有多少糖? 提子含糖量大多数情况下可达到百分之20-百分之30,对比其他水果来说含糖量非常高,如柚子与梨的含糖量均在12%左右。提子含有丰富的营养物质,如维生素A、碳水化合物、钙等,但其糖分以葡萄糖为主,容易被人...
2023-06-25
百分位数计算公式? 百分位数就是这个数除以100,例0.25=25% 3.25=325% 0.08=8% 百分位化小数就是基本上等同于分子,分母同时除以100,例题三0%=30÷100÷(100÷100)=0.3 200%=200÷100÷(100÷100)=2 百分位数是某一百分位所对应数据的值是统计学术...
2023-06-25
高二数学导数公式? 1.y=c(c为常数) y=0 2.y=x^n y=nx^(n-1) 3.y=a^x y=a^xlna y=e^x y=e^x 4.y=logax y=logae/x y=lnx y=1/x 5.y=sinx y=cosx 6.y=cosx y=-sinx 7.y=tanx y=1/cos^2x 8.y=cotx y=-1/sin^2x 9.y=arcsinx y=1/√1-x^2 10.y=arccosx y=-1/√1-x^2 11.y=arctanx y=1/1+x^2 12.y...
2023-06-25