单元排除法是直观法中最常用的方法,也是在平常解决数独谜题时使用最频繁的方法。使用得当的话,甚至可以单独处理中等难度的谜题。
使用单元排除法的目的就是要在某一单元(即行,列或区块)中找到能填入某一数字的唯一位置,换句话说,就是把单元中其他的空白位置都排除掉。它对应于候选数法中的隐式唯一法。
那么要如何排除其余的空格呢?当然还是不能忘了游戏规则,即行,列或区块中不能有重复的数字。从另一个角度来理解,就是
1. 如果某行中已经有了某一数字,则该行中的其他位置不可能再出现这一数字。
2. 如果某列中已经有了某一数字,则该列中的其他位置不可能再出现这一数字。
3. 如果某区块中已经有了某一数字,则该区块中的其他位置不可能再出现这一数字。
单纯理解上面的规则还是不足以解题,但是在实践中这些规则却可以交叉使用。在实际解题过程中,应用最多也最方便的是对区块的单元排除法,我们可以先看下面这个例子:
对于起始于[D1]的区块,其未填数字的空格有6个之多,如果不使用单元排除法,是很难为这一区块填入任何数字的。这时我们就可以利用行,列及区块的相互关系,即一个单元格既在某一行上,也同时在某一列上以及某一区块中的这种关系来解题。
观察数字9在谜题中的位置,可以看到它出现在[B2],[A4],[C7],[D8],[I1]和[H9]。而这些位置中,只有[B2],[D8]和[I1]与起始于[D1]的区块有关联。因为[I1]=9,它所在的第1列上的其他单元格中不可能再出现9, 而区块中的[D1]和[F1]正好也在第1列上,所以这两个单元格填入9的可能性被排除。同理,因为[B2]=9,它所在的第2列中的其他单元格不可能再填入9,而区块中的[D2]和[E2]也正好在第2列上,因此,这两个单元格填入9的可能性也被排除掉了。再看行D,因为[D8]=9,所以该行上的[D1],[D2]和[D3]也不可能再填入9,而这些单元格正好也在起始于[D1]的区块中。所以,这个区块中能填入数字9的位置就只剩下了[E3],这样就通过排除法找到了答案,即[E3]=9。
下面再看一个在行中使用单元排除法的例子:
在谜题中观察数字4和行H,在行H有5个空单元格无法确定数字,但是[C3]位置上的4使得其所在的第3列中的其他单元格上不能再出现4,所以[H3]不能填入4。[I4]上的4使得其所在的区块中也不能再填入4,它帮助行H排除了两个单元格[H4]和[H6],而第8列上的[E8]中的数字4使得同样
位于这一列上的[H8]也排除了填入4的可能。这样,行H中能填入4的位置就只剩下[H9]了。
在列中也可以使用单元排除法:
在第7列中,我们试图确定能填入数字1的位置。在行B中,数字1已经出现在[B2]上,所以[B7]不可能再填入数字1了。而位于[D8]的数字1也使得[F7]排除了填入数字1的可能,因为它们位于同一区块中。这样,第7列上就只有[A7]能填入数字1了。
通过上面的示例,可以看到,要对区块使用单元排除法,需要观察与该区块相交的行和列。要对行使用单元排除法,需要观察与该行相交的区块和列。要对列使用单元排除法,需要观察与该列相交的区块和行。
在实际解题过程中,行,列和区块之间的关系并不象上面这些图中所示的那么明显,所以需要一定的眼力和细心观察。一般来说,先看哪个数字在谜题中出现得最多,就从哪个数字开始下手,找到还未填入这个数字的单元(行,列或区块),利用已填入该数字的单元格与单元之间的关系,看能不能排除一些不可能填入该数字的位置,直到剩下唯一的位置。如果害怕搞不清已经处理过哪些数字的话,可以从数字1开始,从左上角的区块开始一直检查到右下角的区块,看能不能在这些区块中应用单元
排除法。然后测试数字2,以此类推。
单元排除法是应用得最多的直观法,虽然在实践中经常会因为粗心而漏掉很多使用这一方法的机会,但只要勤加练习,就可以运用自如。
因篇幅问题不能全部显示,请点此查看更多更全内容