A001-书籍-像程序员一思考
2016-06-14 17:04
197 查看
书籍:《像程序员一思考》(修订版-2015)
主要内容:1、摘录
2、习题解答
-------------------------------------------------------------------------------------------------------------------------------------
1、找到已知数字最多的 行/列/(3*3)区域,根据游戏的约束条件在空格中填入正确的数字。
2、填完一遍之后,如果确实在该 行/列/(3*3)区域
的空格中填入了数字,就根据约束条件重新再填一遍。
一直重复这个步骤,直到该 行/列/(3*3)区域 没有填入任何数字,最后返回步骤1。
3、若该 行/列/(3*3)区域
剩余2个空格,且每个空格都可以填入剩余的2个数中的任何一个,随机填入一种可能,但要满足约束条件。
4、若该 行/列/(3*3)区域
的全部空格都有>=3种可能的数字可以填,那么在其中2个空格中随机填入一种可能,但要满足约束条件。
最后返回步骤1。
而图片可以更直观的看出一行(或一列)的图片是否拼好,以至于将n*m阶将为(n-1)*m阶(或n*(m-1)阶),这是好处,数字就需要慢慢数。
1、目的是将数字直接插入正确的位置,通过旋转的方法,如、下面将最左边一列的3个数字直接插入到位:
另外、发现2个无解的拼图:
2、弱化或去掉一些约束条件
同类迷题:传教士和吃人恶魔问题:https://zh.wikipedia.org/wiki/传教士和吃人恶魔问题
2、将所有可能的操作列出来
3、简化问题
-------------------------------------------------------------------------------------------------------------------------------------
主要内容:1、摘录
2、习题解答
-------------------------------------------------------------------------------------------------------------------------------------
一、 摘录:
-------------------------------------------------------------------------------------------------------------------------------------二、 习题:
1.1、 在线数独游戏: http://en.oubk.com/DailySudoku/16966/3
解决中等难度数独游戏的通用计划:1、找到已知数字最多的 行/列/(3*3)区域,根据游戏的约束条件在空格中填入正确的数字。
2、填完一遍之后,如果确实在该 行/列/(3*3)区域
的空格中填入了数字,就根据约束条件重新再填一遍。
一直重复这个步骤,直到该 行/列/(3*3)区域 没有填入任何数字,最后返回步骤1。
3、若该 行/列/(3*3)区域
剩余2个空格,且每个空格都可以填入剩余的2个数中的任何一个,随机填入一种可能,但要满足约束条件。
4、若该 行/列/(3*3)区域
的全部空格都有>=3种可能的数字可以填,那么在其中2个空格中随机填入一种可能,但要满足约束条件。
最后返回步骤1。
1.2、 数字滑块游戏: http://www.4399.com/flash/126673_2.htm
难度翻了1番吧,人们通常只习惯数字序列,而不是文字序列或图片序列,序列很适合使用旋转/火车列的方式移动而不出错。而图片可以更直观的看出一行(或一列)的图片是否拼好,以至于将n*m阶将为(n-1)*m阶(或n*(m-1)阶),这是好处,数字就需要慢慢数。
1.3、 数字拼图游戏
新的策略-插入法(对于2*3以上的拼图,可以使用如下策略,当拼图评到等于2*3时就不适用了):1、目的是将数字直接插入正确的位置,通过旋转的方法,如、下面将最左边一列的3个数字直接插入到位:
另外、发现2个无解的拼图:
1.4、 简化问题:
1、重新表述这个问题,将它拆分成多个相联系的小块2、弱化或去掉一些约束条件
同类迷题:传教士和吃人恶魔问题:https://zh.wikipedia.org/wiki/传教士和吃人恶魔问题
1.5、 陷入僵局时:
1、将问题的约束条件列出来2、将所有可能的操作列出来
3、简化问题
-------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- 如何花两年时间面试一个人
- iOS面试题
- 面试题2
- 不会赛车的程序员不是一个好作家
- 剑指offer - 面试题28:字符串的排列(递归+去重)
- 栈和队列相关面试题(2)
- 难倒英雄好汉的“自我评价”
- 剑指offer-面试题12:打印1到最大的n位数
- [读书笔记]《Java程序员修炼之道》
- 单例设计模式(Singleton Pattern)完全解析
- 链表面试题(一)
- 栈和队列相关面试题(1)
- 面试题9:递归和非递归
- 面试题22 栈的压入、弹出序列
- Java程序员也应该知道的系统知识系列之(网卡,cpu,内存,硬盘,虚拟化)
- 编程之法:面试和算法心得
- 要准备了:JAVA面试题及答案汇总
- 腾讯面试全程
- 面试腾讯全过程
- 程序员,应该掌握的英语词汇