幻立方解法之151阶

来源:互联网 发布:伪造监测数据 编辑:程序博客网 时间:2024/04/30 04:57

//测试方法

func testCreateCube151(){

    println("开始生成151阶幻立方:\(NSDate())")

   let cube151 = createCube(step:151, point0: (row: 4, col: 1, deep: 1), deltaPoint: (row: 4, col: 2, deep: 2), deltaLine: (row: 2, col: 4, deep: 0), deltaSide: (row: 2, col: 3, deep: 3))

   println("生成完毕:\(NSDate())")

   if let cube151_ = cube151{

        //printMagicCube(cube151_)//不要打印了,会疯掉的

        println("\nisMagicCube检查")

       let line1 = isMagicCube(cube151_,true)

       if let line1_ = line1 {

           println("不是幻立方,line=\(line1_)")

        }

    }

}


testCreateCube151()


/*

为了能在执行过程中观察到一下信息,在createCube中增加了两行代码已打印信息


var time = step * step * step

println("总数=\(time)")//这是第一行

do{

var nextp = deltaP(pcurr: p, delta: deltaPoint, step: step)


......


p = nextp

cube[p.row][p.col][p.deep] = iPut++

if (time % 10000 == 0){

println("time=\(time)")//这是第二行

}

}while(time-- > 0)


接下来就来看下打印结果

*/


/*

开始生成151阶幻立方:2015-02-04 09:20:12 +0000

总数=3442951

time=3440000

time=3430000

time=3420000

time=3410000

time=3400000

time=3390000


。。。。。。


time=50000

time=40000

time=30000

time=20000

time=10000

生成完毕:2015-02-04 09:24:25 +0000


isMagicCube 检查

经检查,行的和都是相等的

经检查,列的和都是相等的

经检查,深的和都是相等的

前视图的各条对角线的和相等

左视图的各条对角线的和相等

俯视图的各条对角线的和相等

经检查,主对角线和是相等的

经检查,辅对角线row和是相等的

不是幻立方,line=((0, 150, 0), (150, 0, 150))

*/

/*

很好,还真是,除了立方体对角线外,其他的完美

不过我有个问题

我记得陈大记,说它曾经结果151阶的幻立方

我看这个总数=3442951 

一天24*60*60=86400

3442951/86400 ~= 39.85

不知道他当时是怎么完成的,如果1秒钟填1个数,那不吃不喝不睡也得39.85

不可思议

*/

0 0
原创粉丝点击