
偶数和奇数幻方算法是所有幻方中最困难的.
至此,所有魔术平方算法均已完成. 您可以将所有算法结合在一起单偶数阶幻方,成为通用的魔术平方算法. 只需使用mod函数确定开头的顺序,然后调用相应的VBA模块即可.
请参阅奇数和双偶数幻方的算法和代码
如果您忘记了,让我们重复甚至魔方的定义:
1. 双偶数阶幻方: n为偶数并可除以4
n = 4、8、12、16、20 ...
n = 4k,k = 1,2,3,4,5 ...
2. 偶数和偶数幻方: n为偶数且不能除以4
n = 6、10、14、18、22 ...
n = 4k + 2,k = 1,2,3,4,5 ...
单偶阶幻方算法:
n是偶数,不能除以4
n = 6、10、14、18、22 ...
n = 4k + 2,k = 1,2,3,4,5 ...
以n = 10为例,此时k = 2
1. 将方阵分为以下四个象限A,B,C和D,每个象限是一个奇数幻方.
2. 使用Robber方法,依次填充象限A,B,C和D

3. 从象限A的中间行和中间列开始,从左到右标记k个正方形. A象限的其他行用最左侧的k网格标记
4. D象限与上面相同
5. 交换在象限A和D中标记的位置
6. 在象限C的中间列,从右到左,标记列k-1
7. 象限B与上面相同
*注意: 由于六阶幻方的k-1 = 0,因此无需在C和B象限中交换数据
8. 在象限C和B中标记的单元格的位置互换,并且完成了10阶魔方.
代码:
子单个甚至偶数幻方fill_array记录()
n = Val(输入框(“请输入[6]上方的偶数和偶数: ”,“阶n的魔方阶”,10))'阶输入框,默认输入为10
如果n Mod 4 2或n
[a1] .CurrentRegion =“”
[a1]. 调整大小(n,n). 选择
“清空并选择填写字段
Dim x为整数,k为整数
ReDim a(1 to n,1 To n)'定义数组
r = 1: c =(n / 2 +1)/ 2'A象限,第一行中间列

a(r,c)= 1'一个象限填充第一个数字
a(r + n / 2,c)= 3 *(n / 2)^ 2 + 1'D象限填充第一个数字
a(r,n / 2 +(n / 2 + 1)/ 2)= 2 *(n / 2)^ 2 + 1'C象限填充第一个数字
a(r + n / 2,n / 2 +(n / 2 + 1)/ 2)=(n / 2)^ 2 + 1'B象限填充第一个数字
对于i = 2 To(n / 2)^ 2'A象限值
如果r = 1且c = n / 2那么'当小象限到达第1行的最后一列
r = r +1'转到下一行
ElseIf r = 1然后'在小象限的第一行,而不是最后一列
r = n / 2: c = c +1'到小象限的最后一行,第+1列
ElseIf c = n / 2然后'到小象限的最后一列
r = r-1: c = 1'到小象限的第一列单偶数阶幻方,第-1行
ElseIf a(r-1,c + 1)然后'当右上角的框未填充空白
r = r +1'转到下一行
其他“其他”
r = r-1: c = c +1'右上梯子
如果结束
a(r,c)= i'一个象限的订单号

a(r + n / 2,c)= 3 *(n / 2)^ 2 + i'D象限顺序填充
a(r,c + n / 2)= 2 *(n / 2)^ 2 + i'C象限填充顺序
a(r + n / 2,c + n / 2)=(n / 2)^ 2 + i'B象限顺序填充编号
下一步
k =(n-2)/ 4'将值分配给k
对于c =(n / 2 + 1)/ 2到(n / 2 + 1)/ 2 +(k-1)',从象限A的中间列开始,从左到右,标记列k <<
r =(n / 2 +1)/ 2'A象限中间行
'替换与D象限相同的区域
x = a(r,c)
a(r,c)= a(r + n / 2,c)
a(r + n / 2,c)= x
下一步
对于c = 1到k',从左到右,标记列k
对于r = 1到n / 2'A象限,所有行
如果r(n / 2 + 1)/ 2然后'扣除中间行
'替换与D象限相同的区域
x = a(r,c)
a(r,c)= a(r + n / 2,c)
a(r + n / 2,c)= x
如果结束
下一步
下一步
对于c =(n / 2 + 1)/ 2 + n / 2-(k-1)+1从C象限的中间列到(n / 2 + 1)/ 2 + n / 2' ,从右到左,标记列k-1
对于r = 1到n / 2'C象限,所有行
'替换与象限B相同的区域
x = a(r,c)
a(r,c)= a(r + n / 2,c)
a(r + n / 2,c)= x
下一步
下一步
选择= a
结束子
运行效果:
Excel学习世界
转发和观看也是爱!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-169633-1.html
可口可乐公司每年都出新饮料或者收购新晋品牌的
期待新歌
有没有人更新了指纹进不去