幻立方解法之7阶幻立方的生成方法

本文探讨了7阶幻立方的生成方法,通过寻找规律,制定了通用的生成算法。算法考虑了7的倍数和49的倍数时的跳步规则,实现了从初始位置到整个幻立方填充的逻辑。并通过测试方法验证了该算法能成功生成7阶完美幻立方。
摘要由CSDN通过智能技术生成


/*接上篇

对了,我是来找规律的,找幻立方的生成方法的

先看看这个7阶的完美幻立方

初始位置1是在4-1-1(第4行,第1列,第1层,0为基数)

下一步的位置与上一步的相对位移是4-2-2

7的倍数后有个跳步,因为按4-2-2规则,如果不跳的话8的位置就是1的位置,总不能把1给换了吧

7的倍数后的数与前数的相对位移是2-4-0

7*7=49的倍数后又有一个跳步,同样,按照前面的规则,如果不跳的话就没得走了

跳步的相对位移是2-3-3


我们把阶数step,起始位置point0,移步规则deltaPoint,7倍数的跳步规则deltaLine,49倍数的跳步规则deltaSide都写成参数

这样创建幻立方的通用方法就出来了

*/

func createCube(#step: Int, #point0:(row:Int, col:Int, deep:Int),#deltaPoint:(row:Int, col:Int, deep:Int),#deltaLine:(row:Int, col:Int, deep:Int),#deltaSide:(row:Int, col:Int, deep:Int)) -> ([[[Int]]])?{

    let cube1 = [Int](count: step, repeatedValue: 0)

    let cube2 = [[Int]](count: step, repeatedValue: cube1)

    var cube = [[[Int]]](count: step, repeatedValue: cube2)

    

    func deltaP(#pcurr:(row:Int, col:Int, deep:Int),#delta:(row:Int, col:Int, deep:Int),#step:Int)->(row:Int, col:Int, deep:Int){

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值