基本规则
玩法:根据9×9盘面上的已知数字,推理出所有剩余空格的数字,这些数字仅限1、2、3、4、5、6、7、8、9这九个数字。
规则:每一行、每一列、每一宫(3*3空格)内的数字均包含1~9这九个数字。由于每一行、每一列或每个宫仅有9个空格,所以,每一行、每一列或每个宫不会出现重复数字。不允许重复--排除法,是数独最朴素的解法技巧。
数独的九宫、盘面(谜题或最初数字)、终盘(最终数字分布或答案)示例如下:
常用技巧
a、为方便描述,以下将每一行、每一列或每个宫,统称为一个基本单元。
b、图中,黄色为待填数字格,绿色框为目标区。上下图无关联,每张图均为展示某技巧。
c、所示仅为解释所述技巧,不代表当前最佳解法。
基本单元内排除
思路:每个基本单元中已经出现了8个数字,又每个单元中必须出现1~9这九个数字,因此剩下的空格就是这9个数字中未出现的那一个。
这种是人眼最容易观察出来的情况,看上一眼就能发现。
基本单元外-简单排除
思路:对于每一个待填空格,通过观察该待填空格所在的行或列或宫的其他待填空格是否已被某个数字排除。
在实际解题的时候,往往是通过依次查看每个已知数字的位置,去观察某个空格是否能被确定,而不是先定位某个空格,再去查看关联的数字,这样很难做,也不符合人(也可能仅仅是我,哈哈)的思维习惯。
余数
思路:根据待填空格所在的行、列、宫已出现的数字,观察是否只剩某一个候选数字。
前面说的基本单元内的排除,也是一种特殊的余数法,它只是仅仅利用某一个行、列或宫的已出现的数字。在实际解题的时候,往往不能确定唯一值,但总是能确定所有候选数字,将这些候选数字标记上,就成了后面说的占位法的基础。
占位
思路:如果某个基本单元中,已经有n个数字占据了n个空格,那么,其他空格中就不会出现这n个数字,这样,在填该基本单元内的其他待填空格时,就可以把这n个数字排除掉。
占位法所占的位数可能是2位也可能3位,也可能是更多位。通过某个基本单元内的占位,往往可以排除掉其他基本单元内的候选数字。
其他
终极大招
上面所述的方法,可能看起来很简单,也很容易理解,但是在实际做的时候,有时并不能靠肉眼观察出来。做到这种程度,很可能已经到了“就差一发”的地步:再确定其中任何一个待填空格,就可以全盘解答。
这时候就可以使用终极大招了:试错。将所有待填空格,都通过余数法填入候选值,再找一个关联比较多且候选值只有两个的空格,先假设这个空格就是这个数字,然后来继续排除其他候选值,如果过程中发现冲突,就表示最初假设的候选数字是错误的,否则,就可以得到终盘了。
当然,尽量避免这种方法,比较耗时,而且不是靠的眼力。在进行终极大招之前,可以再结合之前的占位排除等基本方法,看能不能再排除一些数字,很可能就会柳暗花明。
7、一些特殊技巧
唯一矩形删减
R3C9(即红色圆圈标注的最右上角的那个格子),可以排除掉6和8,直接确定7。
判断:组成矩形的四个格子中,都由候选数xy组成,但是其中一个多了一个一个候选数z,则该数格就必然是z。
如果该格不是z的话,则四个方格都由xy组成,形成多解,所以该格必然是z。
前提:四个格子位置满足两列、两行,两宫
变形1:由xy组成的矩形上,倘若在其中一边的两个格子还都有另外一个候选数z,则这两个数格必有其中一个为z(如果两个都不是z,又要出现多解了)。所以在这两个数格所在的行/列/宫)里必定不能再出现z。
变形2:跟变形1类似,但是其中一边的两个格子里多的不是同一个候选数,而是多两个候选数a、b。此时可以把这两个格子看做一个只含有候选数a和b的数格,它可以与行/列/宫内的另外的格子一起组成显式数集,从而排除其他数格里的候选数。
变形3:变形2的一种特例。假设a和b所在行/列里,别的数格里不包含x,则在xya,xyb这两个数格里,必然包含有a或b以及x,所以必然不包含y。
X-Wing
描述:四个格子形成矩形,目标数字a,并且对每一列边而言,a只能出现在这两个格子里,其他格子都已经排除了a。此时,可以排除两个行边的其他格子中的a。