幻立方解法之暴力求解

zz/2024/4/20 14:58:16

//疯狂查找

/*

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

*/



http://www.ngui.cc/zz/2336545.html

相关文章

幻立方解法之开篇

/* 最强大脑上陈大记完成的7阶幻立方让我震撼 这让原来连9宫格都完成不了的我也开始探索起幻方来 这不前面几篇写的都是关于幻方的解法。 在幻方的解法中我发现这些数字的排列都是有一定的生成方法的 幻立方肯定也有吧 什么样的生成方法可以达到什么样的效果呢 要想知道什么效果…

A component required a bean of type “XX‘ that could解决方法

1.在Mapper接口上加Mapper注解 2.启动类加MapperScan注解扫描包名

类型转换错误java.math.BigDecimal cannot be cast to java.lang.String

从数据库取出一个 Count函数 统计的值 在代码中要转成Integer类型的时候 Integer.parseInt(map.get(“ID_”).toString()) ; 报了一下错误&#xff1a; java.math.BigDecimal cannot be cast to java.lang.String 解决方法&#xff1a; Object ob map.get(“ID_”); Intege…

idea-maven项目报java.lang.ClassNotFoundException:

maven-servlet项目添加模块 webapp模板webapp模板 可以生效&#xff1b; 普通webapp模板 直接idea无响应&#xff1b; 新手不要用最新的tomcat10 否则报java.lang.ClassNotFoundException&#xff1a; javax.servlet.http.HttpServlet 不好找原因, tomcat9 就ok;

maven父子关系时,发生异常: Could not find artifact org.hlx.itrip:itrip-dao:jar:1.0-SNAPSHOT - [Help 1]

一个MVN父项目&#xff0c;多个MVN子项目目录如下&#xff1a; 在itrip-auth中使用项目进行clean和install &#xff0c;就发生如下异常&#xff1a; 项目之间有相互依赖关系&#xff0c;但就发生异常了&#xff01; 原因&#xff1a; 原来没有首先对父项目也就是interface-te…

Maven上传jar包到本地仓库

Maven上传jar包到本地仓库 第一步:配置Maven环境变量 F:\apache-maven-3.5.2\bin 配置到path中 找到要上传的jar包 地址栏输入 cmd mvn install:install-file -Dfileitrip-alipay-1.0.jar -DgroupIdcn.itrip.alipay -DartifactIditrip-alipay -Dversion1.0 -Dpackagingjar …

Mybatis遇到的问题 Cause: java.lang.ClassNotFoundException: Cannot find class:xx ,提供靠谱解决方法

今天继续学习Mybatis的知识点&#xff0c;让我又遇到一个问题如下&#xff1a; 我还是比较小白的就搜了一些其他的解决方法&#xff0c;说是要把Mapper.xml里面的返回值类型由resultType写成resultMap&#xff0c;改了以后发现没有用。 之后看到大佬留下的一句话&#xff0c;“…

自恢复保险丝-原理

微型自恢复保险丝自恢复保险丝是由高科技聚合树脂及纳米导电晶粒经特殊工艺加工制成&#xff0c;正常情况下&#xff0c;纳米导电晶体随树脂基链接形成链状导电通路&#xff0c;保险丝正常工作&#xff1b;当电路发生短路或者过载时&#xff0c;流经保险丝的大电流使其集温升高…

solr自动增量更新

1.导入增量更新罐包 将阿帕奇的Solr中的-dataimportscheduler.src.jar复制到solr的中的lib目录下 2.配置增量文件更新在solr_home目录下新建一个文件夹conf&#xff0c;再在conf文件夹下 新建dataimport.properties文件&#xff0c;其内容为 #############################…

springmvc+shiro+freemarker实现的安全及权限管理

本文讲述了基于springmvcshiro实现安全管理&#xff0c;shirofreemarker实现权限验证。 首先我们从web.xml开始&#xff1a; 1 <?xml version"1.0" encoding"UTF-8"?>2 <web-app version"2.5" xmlns"http://java.sun.com/xml/ns…