数独(sudoku)是一个有趣的游戏,在美国坐飞机,一般的飞行杂志上都有这种游戏,每次我坐飞机都要破解出来。如果没有,可以买一本书慢慢玩。现在也有很多Online的,所以玩起来很方便,譬如 msnbc.com 的主页上就有 sudoku 链接http://today.msnbc.msn.com/id/20044245/ns/entertainment-comics_games_news_of_the_weird/?cat=sudoc,而且是每天一题。要求是每一行,每一列和每一个3x3的小格里都要是1至9不重复。左边的星是难度,难度是一星到五星,难度在三星以下的比较常见。昨天(2011-11-18)的四星题目是这样的:
第一招就是从 1至9 的每一个数,把相应的行和列划掉,找出可以填上的数字。这里我用红笔标出了第一个黑字2 的由来,就是其它三个红笔的2交叉后,这里就必须是2。我用蓝笔标出来其中的一个3 的由来。其它的类推,这里较为难一点的是我用天蓝标出的7,在其它两个天蓝的7 的限制下,可以确定左下小格里右边天蓝的空格里肯定有一个7,由此推出上面的那个7。用第一招之后应该是这样的:
第二招是每一行(每一列同样)看,把缺失的数字在心里记住,再看看空格上下可以排除的数字,要注意每次填上一个数字,要再用第一招看看能不能填上更多的数字。这个例子里注意看中间的那一行,红笔标出的两个空格必须是5 或8,所以由此可以推出第一个是3,最后一个是1,找到这个以后,剩下的就是很容易了,留给读者做练习吧:
其实多数数独的解的情况也都是如此,只有那么几个数字比较难,找到以后,其它的就迎刃而解!
绝大多数的数独就是这两招就够了,不过为了保证一定能够解出来,就必须加上第三招:当你所有的空格都无法判断的时候,可以猜一个数字,当然一般是这个空格只能是两个数字之一,你可以试试其中的一个,如果不成功再试另一个。你在试验的时候,应该留个底,就是说不成功的时候可以从这里开始。在网上的时候可以用Save,不成功的时候就Refresh,重新来就可以了。其实我写这个的动机正是因为遇到过一个难题,不用猜的方法,能够找到下一个数字吗?
补充:发出这篇博文后,经过艰难的寻找,终于发现,第三行的两个红圈的地方必须是5或8,第五行的三个篮圈的地方必须是5,6或者8,由此可以推出第六行第九列是4,这个“4”就是关键的一步,剩下的可以容易的完成:
附带说今天(2011-11-19)的sudoku是五星,却是特别地容易,基本只用第一招就可以了,有点奇怪,所以我就不介绍了,用了昨天的一个四星的做例子。今天的我也做了一个开头,喜欢的接着来吧: