3 |
数独的解题秘籍 |
(1)直观法。
①唯一解法:当某行已填数字的宫格达到8个,那么该行剩余宫格能填的数字就只剩下那个还没出现过的数字了,成为行唯一解。当某列已填数字的宫格达到8个,那么该列剩余宫格能填的数字就只剩下那个还没出现过的数字了,成为列唯一解。当某九宫格已填数字的宫格达到8个,那么该九宫格剩余宫格能填的数字就只剩下那个还没出现过的数字了,成为九宫格唯一解。
下面是例题。
A行已经添入8个数字,A行只有数字3没有出现过,所以A9=3,这是A行唯一解。
第1列已经添入8个数字,第1列只有数字5没有出现过,所以E1=5,这是第1列唯一解。
在A8所在九宫格区域已经添入8个数字,只有数字9没有出现过,所以A8=9,这是九宫格唯一解。
②基础摒除法。
题目如下:
A4=9,则A行其他格排除9;G1=9,第1列排除数字9;D3=9,第3列排除数字9。
见下图。
由基础摒除法,A1所在的九宫格内9只有一个唯一的位置,即确定B2=9。
见下图。
A4=9,则4列其他格排除9;G1=9,第G行排除数字9;H9=9,第H行排除数字9。
见下图。
由基础摒除法,G4所在的九宫格内9只有一个唯一的位置,即确定I5=9。
见下图。
A4=9,则4列其他格排除9;D3=9,第D行排除数字9;I5=9,第5列排除数字9。
见下图。
由基础摒除法,D4所在的九宫格内9只有一个唯一的位置,即确定F6=9。
见下图。
A4=9,则A行其他格排除9;B2=9,第B行排除数字9;H9=9,第9列排除数字9。
见下图。
由基础摒除法,A7所在的九宫格内9只有一个唯一的位置,即确定C8=9。
见下图。
C8=9,则8列其他格排除9;D3=9,第D行排除数字9;F6=9,第F行排除数字9;H9=9,第9列排除数字9。
见下图。
由基础摒除法,D7所在的九宫格内9只有一个唯一的位置,即确定E7=9。
③区块摒除法。区块摒除法是基础摒除法的提升方法,是直观法中使用频率最高的方法之一。
所谓区块,就是将行分成3块,每块由3个相连的小方块构成,列也是分成3块,每块同样由3个相连的小方块构成。九宫格同样被分成3块,由3个相连的小方块构成,如下面示意图:
区块摒除法的核心思想如下面解释(以行为例),对于列也是相同的道理。
假如(G1~G3)区域区块其中之一是数字9。
则,(H4~H6)区域可能含有数字9。
否则(I4~I6)区域含有数字9。
假定我们已确定(G1~G3)区域区块其中之一是数字9。
(H4~H6)区域含有数字9。
则:在(I7~I9)区域一定含有数字9。如果再通过其他方法确定(I7~I9)区域中某两个宫格不能为数字9,则就能确定数字9在(I7~I9)区块的具体位置。
④唯余解法。唯余解法就是某宫格可以添入的数已经排除了8个,那么这个宫格的数字就只能添入那个没有出现的数字。
唯余解法道理非常简单,但实际使用起来比较困难,要注意识别A5=9。
其实这就是唯余解法的原理,很简单吧。但是实际使用时就不会容易发现了。
能使用唯余解法确定B7的值吗?等于8。
能确定E9、A9、B9、C9的值吗?由区块摒除法可以得出E9=9。
由唯余解法,C9=2。
同样,可得出B9=4,A9=8。
⑤单元摒除法。单元摒除法是比较基本的排除方法,下面举例解释。
能确定A8的值吗?
由D5=7,得出D8不等于7;H9=7,得出G8、H8、I8均不等于7;显然A8=7。
⑥余数测试法。所谓余数测试法,就是在某行或列,九宫格所填数字比较多,剩余2个或3个时,在剩余宫格添入值进行测试的解题方法。
我们看B行,B3可能添入的数为5或者6,我们从5开始测试。
我们在B3添入5进行测试,得到下图,没有得出出错的推断,所以B3=5可能是正确的判断,如果能判断出B3<6,则才能肯定B3=5。
所以下面我们还需要用B3=6进行测试,在B3添入6,推出B8=5。
观察C行,C7,C8,C9必含有数字5。证明B3=6是错误的。从而得出B3=5。
(2)候选数法。
①唯一候选数法。候选数法解题的过程就是逐渐排除不合适的候选数的过程,当某个宫格的候选数排除到只有一个数的时候,那么这个数就是该宫格中的唯一的一个候选数,这个候选数就是解了。
我们可以排除D3为1、2、3、5、6、7、8、9的可能,经过候选数的安全删除后,D3的候选数变为“4”这个唯一候选数了。
②隐性唯一候选数法。当某个数字在某一列各宫格的候选数中只出现一次时,那么这个数字就是这一列的唯一候选数了。这个宫格的值就可以确定为该数字。
这是因为,按照数独游戏的规则,要求每一列都应该包含数字1~9,而其他宫格的候选数都不含有该数,则该数不可能出现在其他的宫格,那么就只能出现在这个宫格了。对于唯一候选数出现行,九宫格的情况,处理方法完全相同。
这是制作好的一张候选数表,注意观察B5,B9,D1。
可以看出在第1列,数字9只在D1出现。在第5列,数字3只在B2出现。在B9所处的九宫格里,数字9只有在B9出现。所以“9”是第1列的隐形唯一候选数。“3”是第5列的隐形唯一候选数。“9”是A7九宫格的隐形唯一候选数。所以确定D1=3,B5=3,B9=9。
③三链数删减法。找出某一列、某一行或某一个九宫格中的某三个宫格候选数中,相异的数字不超过3个的情形,进而将这3个数字自其他宫格的候选数中删减掉的方法就叫做三链数删减法。
三链数删减法的原理如下面图示:
在H行,H2、H5、H7的候选数(12)、(23)、(13),构成三链数,那么1、2、3这三个数在H行将只能出现在H2、H5、H7,那么本行其他宫格就可以删除这3个候选数了。这是三链数发生在行的情况。
三链数是数对的扩展,我们在对上面的三链数进行扩展,得到右边的特殊的三链数,只要保证在3个宫格内,其包含的候选数也为3个,就都符合我们的要求,比如(123,123,123)、(12,12,123)都符合要求。
我们进一步再扩充,发现只要在N个宫格内,其包含的候选数也恰为N个,那么处理和三链数是相同的道理,这样就形成了四链数,比如(12,23,34,14)、(123,123,14,1234)等。平时我们用到最多的就是三链数、四链数了。
在A4所在九宫格,我们看到B4~B6,形成三链数,则本九宫格其他宫格就可以去除候选数“2”、“7”、“9”,这样就得到C6=4。
同上面完全相同的一副图,在A行,A7~A9形成由1、7、9构成的三链数,排除本行其他宫格的候选数1、7、9后得到A3=3。
④隐性三链数删减法。隐性三链数是从隐性数对发展而来的。
在某行,存在三个数字出现在相同的宫格内,在本行的其他宫格均不包含这三个数字,我们称这个数对是隐形三链数。那么这三个宫格的候选数中的其他数字都可以排除。
当隐形三链数出现在列、九宫格,处理方法是完全相同的。
在中间九宫格,候选数“2”、“5”、“9”仅出现在E4、E6、F4,形成隐形三链数,所以在E4、E6、F4,可以排除其他候选数,得到F4=9。
⑤关键数删减法。进入解题后期,利用前面讲到的唯一候选数法、隐性唯一候选数法、区块删减法、数对删减法、隐性数对删减法、三链数删减法、隐性三链数删减法、矩形顶点删减法、三链列删减法都无法有进展的时候,可以考虑使用关键数删减法。关键数删减法就是在后期找到一个数,这个数是在行(或列、九宫格)仅出现两次的数字。我们假定这个数在其中一个宫格内,继续求解,如果发生错误,则确定我们的假设错误。如果继续求解仍然出现困难,不妨假设这个数在另外一个宫格,看能不能得到错误。这就是关键数删减法。