sudokucelue(数独游戏)
Added on
2009-8-19
Read
267
times.
转自金色葡萄
sudiku,中文翻译成数独游戏。
不失一般性,命名规则:3*3的方块或者一行或者一列,称为一个单元。方格中可能填写的数字,称为备选数字。
定理1:如果一个方格内有且只有一个备选数字,那么这个数字就是需要填写的。
定理2:如果一个单元的所有备选数字中,只有一个不重复的数字,那么这个数字是需要填写的。
定理3:在一个单元中,如果出现两个方格中有且只有两个相同的数字,形如|AB|AB|,那么这两个数字必然出现在这两个方格中,且不会出现在单元内的其他方格中
定理4:在一个单元中,如果有N个方格,形如|AB|BC|CD|DE…|xA|,那么数字ABC…x,只能出现在这N个方格中,且不会出现在其他方格中。
推论4.1:|AB|BC|ABC| 同理,
推论4.2:|AB|ABC|ABC|同理
用这个规则系统,可以解出90%以上的hard级别的难题,大概50%左右的Extrem级别的题。要挑战高难度的,似乎我还要扩展定理4.
这一段视频,就是利用这几个定理进行推理导出的。
====
总结一下:
1. 首先要选择合适的工具,一般sudoku都是纸和笔,高级一点的游戏,还是模仿纸和笔。这意味这大量的计算过程是心算或者口算。就我个人而言,心算和口算对于训练能力或者提高游戏乐趣是没有意义的。我厌恶口算,小时候100以内加减法口算题一般错一半,但是仍然不能改变我是本科目前唯一会做傅里叶变换的人这一事实。是的,心算能力和数学水平压根没关系。
Sensible sudoku,提供了一个不错的功能,就是一次性给出所有的备选数字,而且在填入一个确定的数字以后,会更新各处的备选数字。计算备选数字基本上是个体力活。体力活只会降低游戏的乐趣。
2. 对于我而言,游戏的乐趣在于不断的把脑力活动化解成若干基本定律,逐一变成体力活动,当最后完全都变成体力活动以后,游戏的乐趣就消失了。而成就感则达到最大。当一个事情可以彻底交给机器做的时候,我就会非常的高兴。
3. 定理系统中,也有不同复杂程度的定理。尽可能优先使用复杂度低的定理。
4. 观察一下我的定理系统和策略就会发现,是基于备选数字的,目的就是不断降低备选数字的自由度。LP也是Sudoku高手,不过她一直使用的是类纸笔的Sudoku系统,所以她的策略和定理系统是基于已填数字的,目的是不断扩大已填数字的数量。其实备选数字和已填数字不过是镜像而已。对同一事物进行不同角度的观察,会产生不同的策略。很有意思,可以写一篇议论文。