ZT數獨解題技巧
數獨解題技巧
數獨這個數字解謎游戲,完全不必要用到算術!會用到的只是推理與邏輯。直觀法就是不需要任何輔助工具,從接到數獨謎題的那一刻起就可以立即開始解題。絕不猜測。所以要玩報章雜志上的數獨題目時,只要有一枝筆就可以開始了。數獨直觀法解題技巧主要有:唯一解法、基礎摒除法、區(qū)塊摒除法、唯余解法、矩形摒除法、單元摒除法,余數測試法。 bbs.5u6u.com bbs.5u6u.com bbs.5u6u.com 基礎摒除法就是利用1 ~ 9 的數字在每一行、每一列、每一個九宮格都只能出現一次的規(guī)則進行解題的方法?;A摒除法可以分為行摒除、列摒除、九宮格摒除。 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?!?/td>
|
 |
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?!?/td>
|
 |
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./sdjq_zgf/sdjq_z10.gif[/img] |
由基礎摒除法,第D7所在的九宮格內9只有一個唯一的位置,即確定E7=9?!?/td>
|
唯余解法 bbs.5u6u.com bbs.5u6u.com 唯余解法就是某宮格可以添入的數已經排除了8個,那么這個宮格的數字就只能添入那個沒有出現的數字. bbs.5u6u.com 唯余解法道理非常簡單,但在實際使用是比較困難,要注意識別.
 |
A5=? bbs.5u6u.com 其實這就是唯余解法的原理,很簡單吧. bbs.5u6u.com 但是實際使用時就不會容易發(fā)現了. 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
|
 |
由區(qū)塊摒除法可以得出E9=9.在區(qū)塊摒除法沒有舉這個例子,這里補充. |
 |
由唯余解法,C9=2 |
 |
同樣, |
區(qū)塊摒除法 bbs.5u6u.com bbs.5u6u.com 區(qū)塊摒除法是基礎摒除法的提升方法,是直觀法中使用頻率最高的方法之一. bbs.5u6u.com 所謂區(qū)塊,就是將行分成3個三個相連的小方塊構成,列也是分成3個三個相連的小方塊構成.九宮格同樣被看成由3個三個相連的小方塊構成,如下面示意圖:
bbs.5u6u.com 區(qū)塊摒除法的核心思想如下面解釋(以行為例),對于在列也是相同的道理 bbs.5u6u.com
 |
假如(G1~G3)黃色區(qū)域區(qū)塊其中之一是數字9. bbs.5u6u.com
|
 |
則,(H4~H6)藍色區(qū)域可能含有數字9, bbs.5u6u.com 否則(I4~I6)綠色區(qū)域含有數字9. |
 |
假定我們已確定(G1~G3)黃色區(qū)域區(qū)塊其中之一是數字9, bbs.5u6u.com (H4~H6)藍色區(qū)域含有數字9, bbs.5u6u.com 則:在(I7~I9)綠色區(qū)域一定含有數字9. 如果再通過其它方法確定(I7~I9)綠色區(qū)域中某兩個宮格不能為數字9,則就能確定數字9在(I7~I9)區(qū)塊的具體位置. |
| 下面舉一些例子 |
|
 |
能使用區(qū)塊摒除法確定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藍色區(qū)塊,或F1~F2綠色區(qū)塊必包含數字2. |
 |
又有B1=2,利用列摒除法,E1,F1不能為數字1.有F2,F3已填有數字,所以,E2~E3藍色區(qū)塊必有數字2 |
| [img]http://www./sdjq_zgf/sdjq_z26.gif[/img] |
由上面得出黃色區(qū)塊,藍色區(qū)塊包含數字2,這是典型的區(qū)塊摒除法,得到綠色區(qū)塊必包含數字2 |
| [img]http://www./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 當某個數字在某一列各宮格的候選數中只出現一次時,那么這個數字就是這一列的唯一候選數了.這個宮格的值就可以確定為該數字. 這時因為,按照數獨游戲的規(guī)則要求每一列都應該包含數字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 ?。ⅲ梗⑹牵粒肪艑m格的隱形唯一候選數. 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個候選數了。這是三鏈數發(fā)生在行的情況。 bbs.5u6u.com
|
 |
在G7所在九宮格,G7,H8,I9的候選數(12),(23),(13),構成三鏈數,那么123這三個數在這個九宮格將只能出現在G7,H8,I9,那么本九宮格其它宮格就可以刪除這3個候選數了。這是三鏈數發(fā)生在九宮格的情況?!?/td>
|
 |
三鏈數是數對的擴展,我們在對上面的三鏈數進行擴展,得到右邊的特殊的三鏈數,只要保證在3個宮格內,其包含的候選數也為3個,就都符合我們的要求,比如(123,123,123),(12,12,123)都符合要求。 bbs.5u6u.com 我們進一步再擴充,發(fā)現只要在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 隱性三鏈數是從隱性數對發(fā)展而來的。 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 矩形頂點刪減法和直觀法講到的矩形摒除法分析方法是一樣的。矩形頂點刪減法在識別時比較不容易找到,所以最好先使用其它的方法?!?span style="DISPLAY: none"> 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行的紅色區(qū)域都不能再為數字9了.可以將紅色的宮格的候選數中去除數字“9”?! ?/td>
|
 |
在第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 三鏈列刪減法是矩形頂點刪減法的擴展,如果不清除矩形頂點刪減法,可以參考矩形頂點刪減法,以便于更容易理解本節(jié)內容。 利用“找出某個數字在某三列僅出現在相同三行的情形,進而將該數字自這三行其他宮格候選數中刪減掉”; 或“找出某個數字在某三行僅出現在相同三列的情形,進而將該數字自這三列其他宮格候選數中刪減掉”的方法 就叫做三鏈列刪減法(Swordfish)。 bbs.5u6u.com
 |
如果數字“1”可能出現在B行、E行、G行的黃色宮格,則符合“某個數字在某三列僅出現在相同三行的情形”,符合三鏈列刪減法的要求。 bbs.5u6u.com
|
 |
則紅色宮格均不包含候選數“1”?!?/td>
|
 |
這時上圖的一個變形。其中一行的“1”只能放在這一行的兩個位置?!√幚砗蜕蠄D一樣,紅色宮格均可以排除候選數“1”。 |
 |
數字"6"在第2列,第6列,第8列。均出現在A,B,I行。其中在第6列僅出現B,I行,仍然符合三鏈列刪減法的要求?!?/td>
|
 |
則紅色宮格均可以排除候選 |
|
|