数独——智力游戏
[文章作者:叶歆昊 最后修改:2010-07-17 转载请注明原文链接:http://littz.com/sudoku-puzzle.html]
数独(日语:数独 すうどく,英文为Sudoku)是一种源自18世纪末的瑞士,后在美国发展、并在日本得以发扬光大的数学智力拼图游戏。拼图是九宫格(即3格宽×3格高)的正方形状,每一格又细分为一个九宫格。在每一个小九宫格中,分别填上1至9的数字,让整个大九宫格每一列、每一行的数字都不重复。
数独的玩法逻辑简单,数字排列方式千变万化。不少教育者认为数独是锻炼脑筋的好方法。
历史
如今数独的雏型首先于1970年代由美国的一家数学逻辑游戏杂志发表,当时名为Number Place。现今流行的数独于1984年由日本游戏杂志《パズル通信ニコリ》发表并得了现时的名称。数独本是“独立的数字”的省略,因为每一个方格都填上一个个位数。
数独冲出日本成为英国当下的流行游戏,多得曾任香港高等法院法官的高乐德(Wayne Gould)。2004年,他在日本旅行的时候,发现杂志的这款游戏,便带回伦敦向《泰晤士报》推介并获得接纳。英国《每日邮报》也于三日后开始连载,使数独在英国正式掀起热潮。其他国家和地区受其影响也开始连载数独。
通用解法
先注意其中一个方格,限定该方格内可以填写的数字。
注意其中一列(或者其中一个小九宫格),寻找填写某数字的方格。
学过“资料结构”的人,可以尝试用Backtrack试试。
数独的通解方法及步骤:
根据以下方法可以确保最终得到数独的解,而且通过手工运算的时间基本可以控制在1.5个小时,不论难易程度,所以此方法可以作为取得数独答案的一般解法。
1、根据横列、竖列和方格的限制条件排除各个点不可能的数字,并从1-9将各个可能的数字用小字体逐个写进每个空白的格子。(该步骤大约需要15-20分钟,这是求解的初始,务必确保没有遗漏)。
2、审视第一步骤的结果,如果发现某个空格只有一个数字,即确定该空格为这个数字。并根据该数字审视其相关的横列、竖列和方格,并划除相同的数字。(该情况出现的可能往往不多,除了较简单的数独题,但这是一个必要的过程,而且在随后的过程中要反复使用此方法。)
3、审视各个横列、竖列和方格中罗列出的可能的数字结果,若发现某一个数字在各个横列、竖列或方格中出现的次数仅一次,则可以确定该空格的解为此数字。并根据第二条的方法排除与此空格相关列或方格中相同的数字。
4、审视各个横列、竖列和方格中罗列的各个可能的结果,找出相对称的两个数组合的空格(或3个、4个组合),并确定这两个空格(或3个、4个)的数字只可能为这两个数字,即两个数字在这两个空格的位置可以交换,但不可能到该行、该列或该方格的其他位置。根据此结果可以排除相关列或方格罗列出相关数字的可能,并缩小范围。(该步骤处理的难度相对复杂,需要在积累一定经验的基础上进行,也是最终求解的关键)
5、反复使用2、3、4提到的步骤,逐步得到一个一个空格的解,并将先前罗列的各种可能的结果一个一个排除,使可能的范围越来越小,直至得到最后结果。
简单的两个数独

答案

答案
2007/07/03 于 13:53:00
来过!研究中!!呵呵~~~不错啊!我给你做了个连接在我博客上。老实说,blogger这个评论功能做的复杂了!
2007/07/04 于 05:03:00
是哦,比较麻烦,而且还只能对文章评论,不能给博客留言。
2007/07/04 于 05:55:00
而且最新评论是自己找的方法,用Feed(Rss)调用http://littz.com/feeds/comments/default?alt=rss,更新速度并不理想
2007/07/16 于 08:38:00
难怪blogger很多人在闹搬家!天~~~我又看见了一串长长的字符确认!
2007/07/17 于 22:39:00
现在好了,我把留言验证码部分的代码删掉了,blogger最大的优势就在于可以完全自主定义XML代码,只要是合法的XML代码都可以添加和删除,还有就是域名绑定功能,不过服务器在国外,速度慢了点。