首页 > 编程学习 > 幻立方解法之暴力求解

//疯狂查找

/*

step阶的立方,按照各种起点,各种跳步方法逐一检验

*/

func CrazyFindPerfectCube(step:Int){

    func enumInitPoint(#step:Int,#deltaPoint:(row:Int, col:Int, deep:Int),#deltaLine:(row:Int, col:Int, deep:Int),#deltaSide:(row:Int, col:Int, deep:Int)){

        for var deep = 0; deep < step; ++deep{

            for var row = 0; row < step; ++row{

                for var col = 0; col < step; ++col{

                  //  print("\n起点:row:\(row) col:\(col) deep:\(deep)")

                    let cube = createCube(step: step, point0: (row: row, col: col, deep: deep), deltaPoint: deltaPoint, deltaLine: deltaLine, deltaSide: deltaSide)

                    if let cube_ = cube {

                        let line1 = isMagicCube(cube_,false)

                        if let line1_ = line1{

                            if (line1_.end.row != line1_.begin.row) && (line1_.end.col != line1_.begin.col) && (line1_.end.deep != line1_.begin.deep){

                                

                                println(" 这是个不太完美的幻立方。。。。。")

                                println("起点:row:\(row) col:\(col) deep:\(deep)")

                                println("deltaPoint:\(deltaPoint)")

                                println("deltaLine:\(deltaLine)")

                                println("deltaSide:\(deltaSide)")

                                

                                printMagicCube(cube_)

                            }else{

                            //  print(" 不是幻立方line=\(line1_)")

                            }

                        }else{

                            println(" 这是完美的幻立方! ! ! ! ! ! ! ! !")

                            println("起点:row:\(row) col:\(col) deep:\(deep)")

                            println("deltaPoint:\(deltaPoint)")

                            println("deltaLine:\(deltaLine)")

                            println("deltaSide:\(deltaSide)")

                            

                            printMagicCube(cube_)

                        }

                        

                    }

                }

            }

        }

    }

    

    func enumDeltaPoint(#step:Int,#deltaLine:(row:Int, col:Int, deep:Int),#deltaSide:(row:Int, col:Int, deep:Int)){

        for var deep = 0; deep < step; ++deep{

            for var row = 0; row < step; ++row{

                for var col = 0; col < step; ++col{

                    enumInitPoint(step:step,deltaPoint: (row: row, col: col, deep: deep), deltaLine: deltaLine, deltaSide: deltaSide)

                }

            }

        }

    }

    

    func enumDeltaLine(#step:Int,#deltaSide:(row:Int, col:Int, deep:Int)){

        for var deep = 0; deep < step; ++deep{

            for var row = 0; row < step; ++row{

                for var col = 0; col < step; ++col{

                    enumDeltaPoint(step:step,deltaLine: (row: row, col: col, deep: deep), deltaSide: deltaSide)

                }

            }

        }

    }

    

    func enumDeltaSide(#step:Int){

        for var deep = 0; deep < step; ++deep{

            for var row = 0; row < step; ++row{

                for var col = 0; col < step; ++col{

                    println("DeltaSiderow:\(row) col:\(col) deep:\(deep)")

                    enumDeltaLine(step:step,deltaSide: (row: row, col: col, deep: deep))

                }

            }

        }

    }

    

    enumDeltaSide(step: step)

}



func CrazyFindPerfectCube3(){

    println("开始时间:\(NSDate())")

    CrazyFindPerfectCube(3)

    println("结束时间:\(NSDate())")

}


//CrazyFindPerfectCube3()

/*

开始时间:2015-02-04 07:29:00 +0000

DeltaSiderow:0 col:0 deep:0

DeltaSiderow:0 col:1 deep:0

DeltaSiderow:0 col:2 deep:0

DeltaSiderow:1 col:0 deep:0

DeltaSiderow:1 col:1 deep:0

DeltaSiderow:1 col:2 deep:0

DeltaSiderow:2 col:0 deep:0

DeltaSiderow:2 col:1 deep:0

DeltaSiderow:2 col:2 deep:0

DeltaSiderow:0 col:0 deep:1

DeltaSiderow:0 col:1 deep:1

DeltaSiderow:0 col:2 deep:1

DeltaSiderow:1 col:0 deep:1

DeltaSiderow:1 col:1 deep:1

DeltaSiderow:1 col:2 deep:1

DeltaSiderow:2 col:0 deep:1

DeltaSiderow:2 col:1 deep:1

DeltaSiderow:2 col:2 deep:1

DeltaSiderow:0 col:0 deep:2

DeltaSiderow:0 col:1 deep:2

DeltaSiderow:0 col:2 deep:2

DeltaSiderow:1 col:0 deep:2

DeltaSiderow:1 col:1 deep:2

DeltaSiderow:1 col:2 deep:2

DeltaSiderow:2 col:0 deep:2

DeltaSiderow:2 col:1 deep:2

DeltaSiderow:2 col:2 deep:2

结束时间:2015-02-04 07:37:15 +0000

*/

/*

好恐怖居然没有3阶幻立方

连那种不太完美的都没有

不会是我错了吧

不过哪里错了呢

总感觉我还是没错的

总之,整个人都不好了

*/


func CrazyFindPerfectCube4(){

    println("开始时间:\(NSDate())")

    CrazyFindPerfectCube(4)

    println("结束时间:\(NSDate())")

}


//CrazyFindPerfectCube4()

//执行了24分钟才执行了这么多,实在是不想再等,可惜的是连不太完美的都还没找着

/*

开始时间:2015-02-04 07:39:14 +0000

DeltaSiderow:0 col:0 deep:0

DeltaSiderow:0 col:1 deep:0

DeltaSiderow:0 col:2 deep:0

DeltaSiderow:0 col:3 deep:0

DeltaSiderow:1 col:0 deep:0

*/



本文链接:https://www.ngui.cc/zz/2336545.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000