数独解题技巧

来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:03:26
ZT数独解题技巧 

数独解题技巧

数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。直观法就是不需要任何辅助工具,从接到数独谜题的那一刻起就可以立即开始解题。绝不猜测。所以要玩报章杂志上的数独题目时,只要有一枝笔就可以开始了。数独直观法解题技巧主要有:唯一解法、基础摒除法、区块摒除法、唯余解法、矩形摒除法、单元摒除法,余数测试法。 bbs.5u6u.com
bbs.5u6u.com
bbs.5u6u.com
基础摒除法就是利用1 ~ 9 的数字在每一行、每一列、每一个九宫格都只能出现一次的规则进行解题的方法。基础摒除法可以分为行摒除、列摒除、九宫格摒除。 bbs.5u6u.com
bbs.5u6u.com
实际寻找解的过程为: bbs.5u6u.com
  寻找九宫格摒除解:找到了某数在某一个九宫格可填入的位置只余一个的情形;意即找到了 该数在该九宫格中的填入位置。 bbs.5u6u.com
  寻找列摒除解:找到了某数在某列可填入的位置只余一个的情形;意即找到了该数在该列中的填入位置。 bbs.5u6u.com
  寻找行摒除解:找到了某数在某行可填入的位置只余一个的情形;意即找到了该数在该行中的填入位置。 bbs.5u6u.com
bbs.5u6u.com
利用基础摒除法解题的过程就是依次从数字1 ~ 9 在行、列、九宫格寻找能放入该数唯一的一个位置。需要综合用到行摒除、列摒除、九宫格摒除的方法。 bbs.5u6u.com
看能用基础摒除法确定B2、C8、E7、F6、I5的数字吗? bbs.5u6u.com
题目如下: bbs.5u6u.com
bbs.5u6u.com
**29***** bbs.5u6u.com
******8*5 bbs.5u6u.com
*58***7** bbs.5u6u.com
1*9*3**** bbs.5u6u.com
****78*** bbs.5u6u.com
**6****3* bbs.5u6u.com
94**5***1 bbs.5u6u.com
*****7**9 bbs.5u6u.com
68***35**  bbs.5u6u.com
bbs.5u6u.com
A9=9,则A行其它格排除9 bbs.5u6u.com
G1=9,第1列排除数字9 bbs.5u6u.com
D3=9,第3列排除数字9 bbs.5u6u.com
见下图 由基础摒除法,第A1所在的九宫格内9只有一个唯一的位置,即确定B2=9。  A4=9,则4列其它格排除9 bbs.5u6u.com
G1=9,第G行排除数字9 bbs.5u6u.com
H9=9,第H行排除数字9 bbs.5u6u.com
见下图  由基础摒除法,第G4所在的九宫格内9只有一个唯一的位置,即确定I5=9。 A4=9,则4列其它格排除9 bbs.5u6u.com
D3=9,第D行排除数字9 bbs.5u6u.com
I5=9,第5列排除数字9 bbs.5u6u.com
见下图 由基础摒除法,第D4所在的九宫格内9只有一个唯一的位置,即确定F6=9。  A4=9,则A行其它格排除9 bbs.5u6u.com
B2=9,第B行排除数字9 bbs.5u6u.com
H9=9,第9列排除数字9 bbs.5u6u.com
见下图 由基础摒除法,第A7所在的九宫格内9只有一个唯一的位置,即确定C8=9。 C8=9,则8列其它格排除9 bbs.5u6u.com
D3=9,第D行排除数字9 bbs.5u6u.com
F6=9,第F行排除数字9 bbs.5u6u.com
H9=9,第9列排除数字9 bbs.5u6u.com
见下图 [img]http://www.sd9981.com/sdjq_zgf/sdjq_z10.gif[/img] 由基础摒除法,第D7所在的九宫格内9只有一个唯一的位置,即确定E7=9。  唯余解法 bbs.5u6u.com
bbs.5u6u.com
唯余解法就是某宫格可以添入的数已经排除了8个,那么这个宫格的数字就只能添入那个没有出现的数字. bbs.5u6u.com
唯余解法道理非常简单,但在实际使用是比较困难,要注意识别. A5=? bbs.5u6u.com
其实这就是唯余解法的原理,很简单吧. bbs.5u6u.com
但是实际使用时就不会容易发现了. bbs.5u6u.com
能使用唯余解法确定B7的值吗?  能确定E9,A9,B9,C9的值吗? bbs.5u6u.com
本题题目(可以直接导入数独博士进行练习) bbs.5u6u.com
********* bbs.5u6u.com
*531*8*7* bbs.5u6u.com
8**4**9** bbs.5u6u.com
96**1*5*7 bbs.5u6u.com
********* bbs.5u6u.com
**4**5**3 bbs.5u6u.com
**67****5 bbs.5u6u.com
4**8****1 bbs.5u6u.com
*7*3****6  bbs.5u6u.com
由区块摒除法可以得出E9=9.在区块摒除法没有举这个例子,这里补充.  由唯余解法,C9=2  同样, 区块摒除法 bbs.5u6u.com
bbs.5u6u.com
区块摒除法是基础摒除法的提升方法,是直观法中使用频率最高的方法之一. bbs.5u6u.com
所谓区块,就是将行分成3个三个相连的小方块构成,列也是分成3个三个相连的小方块构成.九宫格同样被看成由3个三个相连的小方块构成,如下面示意图: bbs.5u6u.com
区块摒除法的核心思想如下面解释(以行为例),对于在列也是相同的道理  bbs.5u6u.com
假如(G1~G3)黄色区域区块其中之一是数字9. bbs.5u6u.com
则,(H4~H6)蓝色区域可能含有数字9, bbs.5u6u.com
否则(I4~I6)绿色区域含有数字9.   假定我们已确定(G1~G3)黄色区域区块其中之一是数字9, bbs.5u6u.com
(H4~H6)蓝色区域含有数字9, bbs.5u6u.com
则:在(I7~I9)绿色区域一定含有数字9. 如果再通过其它方法确定(I7~I9)绿色区域中某两个宫格不能为数字9,则就能确定数字9在(I7~I9)区块的具体位置.   下面举一些例子     能使用区块摒除法确定F6的数字吗? bbs.5u6u.com
本题题目(可以直接导入数独博士进行练习) bbs.5u6u.com
***81**** bbs.5u6u.com
2**37**** bbs.5u6u.com
81*****4* bbs.5u6u.com
**1****72 bbs.5u6u.com
*******63 bbs.5u6u.com
*73*6**** bbs.5u6u.com
**92**6** bbs.5u6u.com
4****6**9 bbs.5u6u.com
*****17**   D2=2,则E1~E3蓝色区块,或F1~F2绿色区块必包含数字2.  又有B1=2,利用列摒除法,E1,F1不能为数字1.有F2,F3已填有数字,所以,E2~E3蓝色区块必有数字2  [img]http://www.sd9981.com/sdjq_zgf/sdjq_z26.gif[/img] 由上面得出黄色区块,蓝色区块包含数字2,这是典型的区块摒除法,得到绿色区块必包含数字2  [img]http://www.sd9981.com/sdjq_zgf/sdjq_z28.gif[/img] 又G4=2,F5已添入数字,所以F6=2  单元摒除法 bbs.5u6u.com
bbs.5u6u.com
单元摒除法是比较基本的排除方法,下面举例解释 能确定A8的数字吗? bbs.5u6u.com
本题题目(可以直接导入数独博士进行练习) bbs.5u6u.com
8***92*** bbs.5u6u.com
5***3**6* bbs.5u6u.com
*1*****9* bbs.5u6u.com
*8**7**** bbs.5u6u.com
**9****82 bbs.5u6u.com
**5*2**4* bbs.5u6u.com
6*35**4** bbs.5u6u.com
***1****7 bbs.5u6u.com
*****79** 由D5=7,得出D8<>7, bbs.5u6u.com
H9=7,得出G8,H8,I8<>7 bbs.5u6u.com
显然A8=7 余数测试法 bbs.5u6u.com
bbs.5u6u.com
所谓余数测试法就是在某行或列,九宫格所填数字比较多,剩余2个或3个时,在剩余宫格添入值进行测试的解题方法.  bbs.5u6u.com
本题题目(可以直接导入数独博士进行练习) bbs.5u6u.com
*32****7* bbs.5u6u.com
1****89*2 bbs.5u6u.com
*9*64**** bbs.5u6u.com
8***245** bbs.5u6u.com
*513***** bbs.5u6u.com
**7****31 bbs.5u6u.com
******74* bbs.5u6u.com
***5*6*** bbs.5u6u.com
3***8***6 bbs.5u6u.com
在B行,C行剩余未填的数字只有两三个了,这时可以使用余数测试法进行解题. bbs.5u6u.com
我们看B行,B3可能添入的数为5或者6,我们从5开始测试.  我们在B3添入5进行测试,得到左图,没有得出出错的推断,所以B3=5可能是正确的判断,如果能判断出B3<>6,则才能肯定B3=5. bbs.5u6u.com
所以下面我们还需要用B3=6进行测试  在B3添入6,推出B8=5. bbs.5u6u.com
观察C行,C7,C8,C9必含有数字5. bbs.5u6u.com
证明B3=6是错误的.从而得出B3=5 隐性唯一候选数法 bbs.5u6u.com
bbs.5u6u.com
当某個數字在某一列各宮格的候選數中只出現一次時,那么这个数字就是这一列的唯一候选数了.这个宫格的值就可以确定为该数字. 这时因为,按照数独游戏的规则要求每一列都应该包含数字1~9,而其它宫格的候选数都不含有该数,则该数不可能出现在其它的宫格,那么就只能出现在这个宫格了. 对于唯一候选数出现行,九宫格的情况,处理方法完全相同 bbs.5u6u.com
  这是制作好的一张候选数表,注意观察B5,B9,D1 bbs.5u6u.com
可以看出在第1列,数字9只在D1出现. bbs.5u6u.com
 在第5列,数字3只在B2出现. bbs.5u6u.com
 在B9所处的九宫格里,数字9只有在B9出现.   bbs.5u6u.com
 所以"9"是第1列的隐形唯一候选数. bbs.5u6u.com
 "3"是第5列的隐形唯一候选数. bbs.5u6u.com
 "9"是A7九宫格的隐形唯一候选数. bbs.5u6u.com
 所以确 三链数删减法 bbs.5u6u.com
bbs.5u6u.com
找出某一列、某一行或某一个九宫格中的某三个宫格候选数中,相异的数字不超过3个的情形, 进而将这3个数字自其它宫格的候选数中删减掉」的方法就叫做三链数删减法。 bbs.5u6u.com
三链数删减法的原理如下面图示 bbs.5u6u.com
在H行,H2,H5,H7的候选数(12),(23),(13),构成三链数,那么123这三个数在H行将只能出现在H2,H5,H7,那么本行其它宫格就可以删除这3个候选数了。这是三链数发生在行的情况。 bbs.5u6u.com
在G7所在九宫格,G7,H8,I9的候选数(12),(23),(13),构成三链数,那么123这三个数在这个九宫格将只能出现在G7,H8,I9,那么本九宫格其它宫格就可以删除这3个候选数了。这是三链数发生在九宫格的情况。  三链数是数对的扩展,我们在对上面的三链数进行扩展,得到右边的特殊的三链数,只要保证在3个宫格内,其包含的候选数也为3个,就都符合我们的要求,比如(123,123,123),(12,12,123)都符合要求。 bbs.5u6u.com
我们进一步再扩充,发现只要在N个宫格内,其包含的候选数也恰为N个,那么处理和三链数是相同的道理,这样就形成了四链数,比如(12,23,34,14),(123,123,14,1234)等。 bbs.5u6u.com
甚至可以扩充到五链数,七链数(虽然在实际解题中作用不大了)。 bbs.5u6u.com
平时我们用到最多的就是三链数,四链数了.   在A4所在九宫格,我们看到B4~B6,形成三链数,则本九宫格其它宫格就可以去除候选数"2","7","9",这样就得到C6=4.  同上面完全相同的一副图,在A行,A7~A9形成由179构成的三链数,排除本行其它宫格的候选数179后得到A3=3。 隐性三链数删减法 bbs.5u6u.com
bbs.5u6u.com
隐性三链数是从隐性数对发展而来的。 bbs.5u6u.com
在某行,存在三个数字出现在相同的宫格内,在本行的其它宫格均不包含这三个数字,我们称这个数对是隐形三链数.那么这三个宫格的候选数中的其它数字都可以排除. bbs.5u6u.com
当隐形三链数出现在列,九宫格,处理方法是完全相同的. bbs.5u6u.com
我们进一不扩充,在某行(列,九宫格),存在N个数字出现在相同的宫格内,在本行的其它宫格均不包含这N个数字,我们称这个数对是隐形N链数.那么这N个宫格的候选数中的其它数字都可以排除  bbs.5u6u.com
在中间九宫格,候选数"2","5","9"仅出现在E4,E6,F4,形成隐形三链数,所以在E4,E6,F4,可以排除其它候选数,得到F4=9. bbs.5u6u.com
矩形顶点删减法 bbs.5u6u.com
bbs.5u6u.com
矩形顶点删减法和直观法讲到的矩形摒除法分析方法是一样的。矩形顶点删减法在识别时比较不容易找到,所以最好先使用其它的方法。  bbs.5u6u.com
如左图,如果在第3列,候选数“9”只能在B3或H3出现. bbs.5u6u.com
在第7列,候选数“9”只能在B7或H7出现. bbs.5u6u.com
则B3,H3,B7,H7构成矩形,符合矩形顶点删减法的条件. bbs.5u6u.com
由上,可以得出数字“9”仅可能出现在(B3,H7)上,或者出现在(B7,H3)上  无论出现上面的那一种情况,我们都可以推断出B行,H行的红色区域都不能再为数字9了.可以将红色的宫格的候选数中去除数字“9”。   在第3列,数字“3”仅在A3、H3出现 bbs.5u6u.com
 和第6列,数字“3”仅在A6、H6出现 bbs.5u6u.com
 A3、H3,A6、H6构成矩形,符合矩形顶点删减法要求, bbs.5u6u.com
 则红色宫格应排除候选数“3” 三链列删减法 bbs.5u6u.com
bbs.5u6u.com
三链列删减法是矩形顶点删减法的扩展,如果不清除矩形顶点删减法,可以参考矩形顶点删减法,以便于更容易理解本节内容。 利用“找出某个数字在某三列仅出现在相同三行的情形,进而将该数字自这三行其他宫格候选数中删减掉”; 或“找出某个数字在某三行仅出现在相同三列的情形,进而将该数字自这三列其他宫格候选数中删减掉”的方法 就叫做三链列删减法(Swordfish)。 bbs.5u6u.com
如果数字“1”可能出现在B行、E行、G行的黄色宫格,则符合“某个数字在某三列仅出现在相同三行的情形”,符合三链列删减法的要求。 bbs.5u6u.com
则红色宫格均不包含候选数“1”。  这时上图的一个变形。其中一行的“1”只能放在这一行的两个位置。 处理和上图一样,红色宫格均可以排除候选数“1”。  数字"6"在第2列,第6列,第8列。均出现在A,B,I行。其中在第6列仅出现B,I行,仍然符合三链列删减法的要求。  则红色宫格均可以排除候选