幻立方解法之暴力求解
//疯狂查找
/*
对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
*/
幻立方解法之暴力求解相关推荐
- NYOJ 643 发短信 暴力求解
发短信 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 下图是手机常用的九键英文输入法界面,如果要输入字母'A',我们只 需要按一次数字键2,按键顺序记为2:如果要输入字 ...
- 幻立方解法之素数3阶幻立方
/* 暴力求解的过程,让我整个人都不好了 不过在网上还找到了几个号称是3阶素数幻立方的,诶....这个可以看下 http://tieba.baidu.com/p/3165245336 */ func ...
- 考研概率论--87年真题--MATLAB暴力求解
考研概率论--87年真题--MATLAB暴力求解 1. 问题描述 2. MATLAB代码 3. 运行结果 4. 总结 1. 问题描述 (1987考研数学真题)假设有两箱同种零件:第一箱内装50件,其中 ...
- 求最大连续子序列和——解法1 – 暴力出奇迹||解法2 – 分治
解法1 – 暴力出奇迹 穷举出所有可能的连续子序列,并计算出它们的和,最后取它们中的最大值 空间复杂度:O(1),时间复杂度:O (n 3) class Solution {public int ma ...
- 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)
/*** 最大子数组的暴力求解算法,复杂度为o(n2)* @param n* @return*/static MaxSubarray findMaxSubarraySlower(int[] n) {l ...
- python输入多个字符串、输入最长的一串_无重复字符的最长子串(Python之暴力求解)...
无重复字符的最长子串(Python之暴力求解) 例题: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例: (1) 输入: "abcabcbb" 输出: 3 ...
- 高等工程数学 —— 第四章 (1)线性方程组的直接解法与广义逆矩阵求解矛盾方程组
高等工程数学 -- 第四章 (1)线性方程组的直接解法与广义逆矩阵求解矛盾方程组 文章目录 高等工程数学 -- 第四章 (1)线性方程组的直接解法与广义逆矩阵求解矛盾方程组 线性方程组的直接解法 Ga ...
- 斗地主残局破解算法,斗地主残局暴力求解器算法,秒解各种斗地主残局
斗地主残局破解,斗地主残局暴力求解器,秒解各种斗地主残局 秒解抖音.微信等各大平台的斗地主残局挑战 支持自定义出牌规则 输入双方的牌后单击"开始求解"按钮即可 求解完成后,电脑会自 ...
- 算法 |【实验5.2】1-深度优先搜索暴力求解旅行商问题
文章目录 使用深度优先搜索暴力求解旅行商问题 1.题目描述 2.问题分析与算法设计思路 3.算法实现 4.运行结果 5.算法分析 使用深度优先搜索暴力求解旅行商问题 1.题目描述 商品推销员要去n个城 ...
最新文章
- 关于学习数据库的一点总结
- C++实现质因数分解
- 【数理逻辑】谓词逻辑 ( 谓词逻辑基本等值式 | 消除量词等值式 | 量词否定等值式 | 量词辖域收缩扩张等值式 | 量词分配等值式 )
- 窗口分析函数_7_生成指定的分组序号
- Android为TV端助力 转载:android自定义view实战(温度控制表)!
- 【动态规划】大厅安排 (ssl 1212)
- SpringBoot报错couldn‘t check if tables are already present using metadata:
- 2017/2/25 学习笔记
- PyHook3简明教程
- 基于FBMC的调制解调系统
- 鱼塘钓鱼 (贪心+枚举)
- C# 打印自定义纸张设置
- EL表达式与JSTL标签库
- 虚拟化是什么,虚拟化主要分为哪几种?
- 不怕加班狗有情绪,就怕加班狗有“武器”
- 从B站的代码泄露事件中,我们能学到些什么?
- endcap和welltap_Physical only cell的介绍
- IA-32寄存器基本介绍
- C/C++ 信号处理 Signal
- 网络字节序和IP地址详解