//疯狂查找

/*

对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("DeltaSide:row:\(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

DeltaSide:row:0 col:0 deep:0

DeltaSide:row:0 col:1 deep:0

DeltaSide:row:0 col:2 deep:0

DeltaSide:row:1 col:0 deep:0

DeltaSide:row:1 col:1 deep:0

DeltaSide:row:1 col:2 deep:0

DeltaSide:row:2 col:0 deep:0

DeltaSide:row:2 col:1 deep:0

DeltaSide:row:2 col:2 deep:0

DeltaSide:row:0 col:0 deep:1

DeltaSide:row:0 col:1 deep:1

DeltaSide:row:0 col:2 deep:1

DeltaSide:row:1 col:0 deep:1

DeltaSide:row:1 col:1 deep:1

DeltaSide:row:1 col:2 deep:1

DeltaSide:row:2 col:0 deep:1

DeltaSide:row:2 col:1 deep:1

DeltaSide:row:2 col:2 deep:1

DeltaSide:row:0 col:0 deep:2

DeltaSide:row:0 col:1 deep:2

DeltaSide:row:0 col:2 deep:2

DeltaSide:row:1 col:0 deep:2

DeltaSide:row:1 col:1 deep:2

DeltaSide:row:1 col:2 deep:2

DeltaSide:row:2 col:0 deep:2

DeltaSide:row:2 col:1 deep:2

DeltaSide:row: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

DeltaSide:row:0 col:0 deep:0

DeltaSide:row:0 col:1 deep:0

DeltaSide:row:0 col:2 deep:0

DeltaSide:row:0 col:3 deep:0

DeltaSide:row:1 col:0 deep:0

*/

幻立方解法之暴力求解相关推荐

  1. NYOJ 643 发短信 暴力求解

    发短信 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 下图是手机常用的九键英文输入法界面,如果要输入字母'A',我们只 需要按一次数字键2,按键顺序记为2:如果要输入字 ...

  2. 幻立方解法之素数3阶幻立方

    /* 暴力求解的过程,让我整个人都不好了 不过在网上还找到了几个号称是3阶素数幻立方的,诶....这个可以看下 http://tieba.baidu.com/p/3165245336 */ func ...

  3. 考研概率论--87年真题--MATLAB暴力求解

    考研概率论--87年真题--MATLAB暴力求解 1. 问题描述 2. MATLAB代码 3. 运行结果 4. 总结 1. 问题描述 (1987考研数学真题)假设有两箱同种零件:第一箱内装50件,其中 ...

  4. 求最大连续子序列和——解法1 – 暴力出奇迹||解法2 – 分治

    解法1 – 暴力出奇迹 穷举出所有可能的连续子序列,并计算出它们的和,最后取它们中的最大值 空间复杂度:O(1),时间复杂度:O (n 3) class Solution {public int ma ...

  5. 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)

    /*** 最大子数组的暴力求解算法,复杂度为o(n2)* @param n* @return*/static MaxSubarray findMaxSubarraySlower(int[] n) {l ...

  6. python输入多个字符串、输入最长的一串_无重复字符的最长子串(Python之暴力求解)...

    无重复字符的最长子串(Python之暴力求解) 例题: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例: (1) 输入: "abcabcbb" 输出: 3 ...

  7. 高等工程数学 —— 第四章 (1)线性方程组的直接解法与广义逆矩阵求解矛盾方程组

    高等工程数学 -- 第四章 (1)线性方程组的直接解法与广义逆矩阵求解矛盾方程组 文章目录 高等工程数学 -- 第四章 (1)线性方程组的直接解法与广义逆矩阵求解矛盾方程组 线性方程组的直接解法 Ga ...

  8. 斗地主残局破解算法,斗地主残局暴力求解器算法,秒解各种斗地主残局

    斗地主残局破解,斗地主残局暴力求解器,秒解各种斗地主残局 秒解抖音.微信等各大平台的斗地主残局挑战 支持自定义出牌规则 输入双方的牌后单击"开始求解"按钮即可 求解完成后,电脑会自 ...

  9. 算法 |【实验5.2】1-深度优先搜索暴力求解旅行商问题

    文章目录 使用深度优先搜索暴力求解旅行商问题 1.题目描述 2.问题分析与算法设计思路 3.算法实现 4.运行结果 5.算法分析 使用深度优先搜索暴力求解旅行商问题 1.题目描述 商品推销员要去n个城 ...

最新文章

  1. 关于学习数据库的一点总结
  2. C++实现质因数分解
  3. 【数理逻辑】谓词逻辑 ( 谓词逻辑基本等值式 | 消除量词等值式 | 量词否定等值式 | 量词辖域收缩扩张等值式 | 量词分配等值式 )
  4. 窗口分析函数_7_生成指定的分组序号
  5. Android为TV端助力 转载:android自定义view实战(温度控制表)!
  6. 【动态规划】大厅安排 (ssl 1212)
  7. SpringBoot报错couldn‘t check if tables are already present using metadata:
  8. 2017/2/25 学习笔记
  9. PyHook3简明教程
  10. 基于FBMC的调制解调系统
  11. 鱼塘钓鱼 (贪心+枚举)
  12. C# 打印自定义纸张设置
  13. EL表达式与JSTL标签库
  14. 虚拟化是什么,虚拟化主要分为哪几种?
  15. 不怕加班狗有情绪,就怕加班狗有“武器”
  16. 从B站的代码泄露事件中,我们能学到些什么?
  17. endcap和welltap_Physical only cell的介绍
  18. IA-32寄存器基本介绍
  19. C/C++ 信号处理 Signal
  20. 网络字节序和IP地址详解

热门文章

  1. DC系列靶机DC-1
  2. Jira+Jenkins+Gitlab自动化交付实践
  3. 一个长期潜伏在微软拼音输入法中的Bug
  4. Leaflet简单使用
  5. android studio build异常
  6. android studio集成onvif协议的网络摄像头
  7. linux命令大全dfs,Linux使用hadoop dfs命令的方法
  8. 24、身份证查询API接口,免费好用
  9. IC设计- 浅谈各种验证 - 功能验证,形式验证,原型验证
  10. 是时候复习一下jQuery了