10 分鐘學會數獨

不瞭解數獨的人,請先看我第一篇文章

現在你應該知道數獨的基本規則,以及行、列和宮

避免你沒看前面那篇文章,我解釋一下我用到的座標體系

R 代表行,C 代表列,B 代表宮

R1C1 指第一行第一列那個格子

R23C1 指第一列的第二行和第三行 2 個格子

R1C23 指第一行的第二列和第三列 2 個格子

B1 代表第一宮

本文只是數獨的基礎技巧和快速入門,如果都學會還想繼續深入,請等待我的後續文章

把這篇文章的技巧都能用的出神入化以後,你玩數獨已經很厲害了

好了,說正題。

做數獨第一個要用到的技巧和思路是什麼呢?

答案一定是 「排除法」

什麼是排除?

根據數獨規則,如果某格內出現了一個數字,與該格同行、同列同宮的位置不能再出現相同的數字。這種排斥同行、同列、同宮其它格內出現相同數字的思路就是排除。見下圖:

圖中出現的已知數 5,可以排除掉同行、同列和同宮中其他格子內填 5 的可能,即打叉的格子不能再填 5 了,否則和數獨的規則矛盾了。

10 分鐘學會數獨

排除法怎麼用?

排除法主要分為:1 宮內排除法、2 行列排除法、3 區塊排除法。

宮內排除法

針對某宮進行排除,找到只有一個位置可以填某數。

見下圖

觀察數字 2

B1 和 B3 的 2 讓 B2 的 R12 都不能填 2,那麼 2 只能在 R3C6

B3 和 B4 的 2 讓 B6 的 C8 和 R6 都不能填 2,那麼 2 只能在 R5C9

10 分鐘學會數獨

行列排除法

針對某行或某列進行排除,找到該行或該列只有一個位置可以填某數。在數獨中,行和列其實是一樣的,所以行和列通常會一起討論

見下圖

觀察 R5,B6 的 2 讓 R5 在 B6 的 3 列都沒法填入 2,所以 2 只能在 R5C6

再解釋一下為什麼是行列排除,因為每一行列必須都要有 2,R5 這行的 2 只有只一個位置可以填了,把行變成列也是一樣的。

10 分鐘學會數獨

再看一個例子

還是看 R5,C268 的 2 都因為這些列已經有 2 無法填入,那麼 2 只能在 R5C9

再說一句,行變成列是一樣的

10 分鐘學會數獨

區塊排除法

利用排除形成區塊,再利用該區塊作為排除其他位置的條件進行推理填數。

不好理解是吧,看例子吧

下圖中,R5 已經有 4 了,所以 B6 的 R5 不能填 4,4 只能在 R46C9 這兩個格子中

既然 4 只能在這兩個格子,那麼 C9 的 4 也就一定在這兩個格子裡面,B9 的 4 不能出現在 C9,只剩下一個位置可以填入,R9C8 就一定是 4

10 分鐘學會數獨

再看一個例子

R4 的 8 讓 B4 的 8 只能出現 R6 中,這樣的 R6 的 8 一定在 B4 的這三個位置

這樣 C8,R4 和 R6 交叉排除,B6 的 8 只能出現在 R5C9

10 分鐘學會數獨

我再總結一下區塊排除法

某一個數字在一個宮裡面,只出現在某一行或者某一列,那麼在這一行或者列的其他宮內就不能出現了。

這個方法在實際運用的時候可能沒有前面兩種那麼容易看出來,當用前面兩種排除法的時候,有些宮雖然沒法確定數字,但可以把可以填入數字的地方先做好筆記,方便觀察。

後面我還會講一下解決數獨的時候用的方法順序大概什麼樣的。

好的,排除法就說這麼多,接下來說另外一種方法

唯餘法:也稱唯一餘數法,指的是某格里只剩下唯一的數字可以填了。

數獨中任意一個格子都可以填入1-9,如果某格的同行、同列和或同宮中已經出現了8個不同的數字,那麼該格只能填入沒出現的第 9 個數字。

這個思路與排除法不同,排除法是利用已知數字填出相同的數字,而唯餘法是利用已知數字填出不同的數字。

看兩個例子,一下就理解了

藍色的 1 這個格子,和它相關的行列已經有 2-9 了,只剩下一個 1 沒有填。

10 分鐘學會數獨

第二個稍微複雜一點,但還是一樣的,和藍色 1 有關的行列宮有 2-9 了

10 分鐘學會數獨

應該能理解了吧,具體要怎麼用,我後面會說

第三個方法

數對佔位法:利用數對佔位作為間接條件,再配合其他數字的排除推理的方法。

數對是指兩格與兩數相互對應,但還無法確定兩數在這兩格中具體的位置。

還是看例子

R4 的 24 和 R6 的 24,讓 B5 的 24 只能出現在 R5C56

C4 的 3 和 C5 的 3 排除完後,B5 的 3 的位置是 R56C6

但 R5C6 已經被 24 佔據了,你不能填入 3,3 就只能在 R6C6 了

10 分鐘學會數獨

數對最重要的是起一個佔位的作用,雖然我不知道 24 在這兩格里面的具體位置,但我把這兩格佔住了,除了 24 其他的都不能填,你填了除 24 外的任何一個數字,24 中就有一個沒法填了

另外數對還有一個作用是做刪減,上圖這個例子因為通過排除法出來的,所以沒有需要刪減的地方,如果有些數對是通過唯一餘數法出來的,比如還是 24,那麼除掉這兩個格子,其他和這兩個格子相關的地方都不能是 24

這個也能引申到 N 個有關係的格子(同一行,同一列,同一宮)總共有 N 個數字,那麼這 N 格數字一定在這 N 個格子裡面

後面說的我會專門寫一篇來講,如果現在不理解也沒關係

好了,幾個基礎方法說完了,我來說一下遇到一個數獨題目應該怎麼開始

怎麼解一個數獨

先看這個數獨已知數最多的那個數字,比如有 6 個 1,5 個 4 等等,那麼我們先從 1 開始,用宮內排除法,看看是不是能確定其他 1 的位置,就算不能確定,也先做好筆記,如果已知的只有 1-2 個就先不看了,超過 4 個的都值得先做筆記,這個時候一定需要注意看區塊排除法,區塊排除法越晚看越不好找到

然後,找相關已知數最多的格子,看看唯餘法是不是能夠把數字直接填出來,就算填不出來,也請做好筆記,這個時候這個格子基本只有 2-3 個候選數

接下來找已知數最多的行,列,宮,比如某一行已經有 6 個數出現了,只剩下 3 個,先看看能不能填入數字,如果填不進也做好筆記

找數對,然後再排除

重複上面的步驟,如果沒解出來,但應該需要把所有格子能夠填入的數字都做好筆記了

再找一次數對,做一次排除,這個時候大部分的數獨就應該能解決了。

如果解決不了,說明這個數獨的難度超過了這篇文章所說的方法,後續我還會接著寫更多的方法。

開始練習

這些方法看了容易懂,但怎麼用還是得去做數獨的題目。解決掉 5 個數獨的題目,這些方法就熟練了。

如果你是 iPhone,我自己寫了一個 iOS 版本的數獨,用這些方法能夠解決 App 裡面簡單和中等難度的題目,更高難度的題目技巧等我後續文章吧。

Appstore 數獨遊戲

10 分鐘學會數獨

Android 我看到有一個全民數獨還不錯

繼續閱讀實戰篇


分享到:


相關文章: