不了解數(shù)獨的人,請先看我第一篇文章 現(xiàn)在你應該知道數(shù)獨的基本規(guī)則,以及行、列和宮 避免你沒看前面那篇文章,我解釋一下我用到的坐標體系 R 代表行,C 代表列,B 代表宮 R1C1 指第一行第一列那個格子 R23C1 指第一列的第二行和第三行 2 個格子 R1C23 指第一行的第二列和第三列 2 個格子 B1 代表第一宮 本文只是數(shù)獨的基礎技巧和快速入門,如果都學會還想繼續(xù)深入,請等待我的后續(xù)文章 把這篇文章的技巧都能用的出神入化以后,你玩數(shù)獨已經(jīng)很厲害了 好了,說正題。 做數(shù)獨第一個要用到的技巧和思路是什么呢? 答案一定是 「排除法」 什么是排除? 根據(jù)數(shù)獨規(guī)則,如果某格內(nèi)出現(xiàn)了一個數(shù)字,與該格同行、同列同宮的位置不能再出現(xiàn)相同的數(shù)字。這種排斥同行、同列、同宮其它格內(nèi)出現(xiàn)相同數(shù)字的思路就是排除。見下圖: 圖中出現(xiàn)的已知數(shù) 5,可以排除掉同行、同列和同宮中其他格子內(nèi)填 5 的可能,即打叉的格子不能再填 5 了,否則和數(shù)獨的規(guī)則矛盾了。 排除法怎么用? 排除法主要分為:1 宮內(nèi)排除法、2 行列排除法、3 區(qū)塊排除法。 宮內(nèi)排除法 針對某宮進行排除,找到只有一個位置可以填某數(shù)。 見下圖 觀察數(shù)字 2 B1 和 B3 的 2 讓 B2 的 R12 都不能填 2,那么 2 只能在 R3C6 B3 和 B4 的 2 讓 B6 的 C8 和 R6 都不能填 2,那么 2 只能在 R6C9 行列排除法 針對某行或某列進行排除,找到該行或該列只有一個位置可以填某數(shù)。在數(shù)獨中,行和列其實是一樣的,所以行和列通常會一起討論 見下圖 觀察 R5,B6 的 2 讓 R5 在 B6 的 3 列都沒法填入 2,所以 2 只能在 R5C6 再解釋一下為什么是行列排除,因為每一行列必須都要有 2,R5 這行的 2 只有只一個位置可以填了,把行變成列也是一樣的。 再看一個例子 還是看 R5,C268 的 2 都因為這些列已經(jīng)有 2 無法填入,那么 2 只能在 R5C9 再說一句,行變成列是一樣的 區(qū)塊排除法 利用排除形成區(qū)塊,再利用該區(qū)塊作為排除其他位置的條件進行推理填數(shù)。 不好理解是吧,看例子吧 下圖中,R5 已經(jīng)有 4 了,所以 B6 的 R5 不能填 4,4 只能在 R46C9 這兩個格子中 既然 4 只能在這兩個格子,那么 C9 的 4 也就一定在這兩個格子里面,B9 的 4 不能出現(xiàn)在 C9,只剩下一個位置可以填入,R9C8 就一定是 4 再看一個例子 R4 的 8 讓 B4 的 8 只能出現(xiàn) R6 中,這樣的 R6 的 8 一定在 B4 的這三個位置 這樣 C8,R4 和 R6 交叉排除,B6 的 8 只能出現(xiàn)在 R5C9 我再總結一下區(qū)塊排除法 某一個數(shù)字在一個宮里面,只出現(xiàn)在某一行或者某一列,那么在這一行或者列的其他宮內(nèi)就不能出現(xiàn)了。 這個方法在實際運用的時候可能沒有前面兩種那么容易看出來,當用前面兩種排除法的時候,有些宮雖然沒法確定數(shù)字,但可以把可以填入數(shù)字的地方先做好筆記,方便觀察。 后面我還會講一下解決數(shù)獨的時候用的方法順序大概什么樣的。 好的,排除法就說這么多,接下來說另外一種方法 唯余法:也稱唯一余數(shù)法,指的是某格里只剩下唯一的數(shù)字可以填了。 數(shù)獨中任意一個格子都可以填入1-9,如果某格的同行、同列和或同宮中已經(jīng)出現(xiàn)了8個不同的數(shù)字,那么該格只能填入沒出現(xiàn)的第 9 個數(shù)字。 這個思路與排除法不同,排除法是利用已知數(shù)字填出相同的數(shù)字,而唯余法是利用已知數(shù)字填出不同的數(shù)字。 看兩個例子,一下就理解了 藍色的 1 這個格子,和它相關的行列已經(jīng)有 2-9 了,只剩下一個 1 沒有填。 第二個稍微復雜一點,但還是一樣的,和藍色 1 有關的行列宮有 2-9 了 應該能理解了吧,具體要怎么用,我后面會說 第三個方法 數(shù)對占位法:利用數(shù)對占位作為間接條件,再配合其他數(shù)字的排除推理的方法。 數(shù)對是指兩格與兩數(shù)相互對應,但還無法確定兩數(shù)在這兩格中具體的位置。 還是看例子 R4 的 24 和 R6 的 24,讓 B5 的 24 只能出現(xiàn)在 R5C56 C4 的 3 和 C5 的 3 排除完后,B5 的 3 的位置是 R56C6 但 R5C6 已經(jīng)被 24 占據(jù)了,你不能填入 3,3 就只能在 R6C6 了 數(shù)對最重要的是起一個占位的作用,雖然我不知道 24 在這兩格里面的具體位置,但我把這兩格占住了,除了 24 其他的都不能填,你填了除 24 外的任何一個數(shù)字,24 中就有一個沒法填了 另外數(shù)對還有一個作用是做刪減,上圖這個例子因為通過排除法出來的,所以沒有需要刪減的地方,如果有些數(shù)對是通過唯一余數(shù)法出來的,比如還是 24,那么除掉這兩個格子,其他和這兩個格子相關的地方都不能是 24 這個也能引申到 N 個有關系的格子(同一行,同一列,同一宮)總共有 N 個數(shù)字,那么這 N 格數(shù)字一定在這 N 個格子里面 后面說的我會專門寫一篇來講,如果現(xiàn)在不理解也沒關系 好了,幾個基礎方法說完了,我來說一下遇到一個數(shù)獨題目應該怎么開始 怎么解一個數(shù)獨 先看這個數(shù)獨已知數(shù)最多的那個數(shù)字,比如有 6 個 1,5 個 4 等等,那么我們先從 1 開始,用宮內(nèi)排除法,看看是不是能確定其他 1 的位置,就算不能確定,也先做好筆記,如果已知的只有 1-2 個就先不看了,超過 4 個的都值得先做筆記,這個時候一定需要注意看區(qū)塊排除法,區(qū)塊排除法越晚看越不好找到 然后,找相關已知數(shù)最多的格子,看看唯余法是不是能夠把數(shù)字直接填出來,就算填不出來,也請做好筆記,這個時候這個格子基本只有 2-3 個候選數(shù) 接下來找已知數(shù)最多的行,列,宮,比如某一行已經(jīng)有 6 個數(shù)出現(xiàn)了,只剩下 3 個,先看看能不能填入數(shù)字,如果填不進也做好筆記 找數(shù)對,然后再排除 重復上面的步驟,如果沒解出來,但應該需要把所有格子能夠填入的數(shù)字都做好筆記了 再找一次數(shù)對,做一次排除,這個時候大部分的數(shù)獨就應該能解決了。 如果解決不了,說明這個數(shù)獨的難度超過了這篇文章所說的方法,后續(xù)我還會接著寫更多的方法。 開始練習 這些方法看了容易懂,但怎么用還是得去做數(shù)獨的題目。解決掉 5 個數(shù)獨的題目,這些方法就熟練了。 如果你是 iPhone,我自己寫了一個 iOS 版本的數(shù)獨,用這些方法能夠解決 App 里面簡單和中等難度的題目,更高難度的題目技巧等我后續(xù)文章吧。 Appstore 數(shù)獨游戲 Android 我看到有一個全民數(shù)獨還不錯 |
|
來自: 昵稱32901809 > 《待分類》