基本解法舉例
數獨解法全是由規則衍生出來的,基本解法分為兩類思路,一類為排除法,一類為唯一法。更復雜的解法,最終也會歸結到這兩大類中。 下邊以圖示簡單介紹幾種解法,只要你花幾分鐘看一遍,馬上就可以開始做數獨了。
基礎摒除法
基礎摒除法就是利用1 ~ 9 的數字在每一行、每一列、每一宮都只能出現一次的規則進行解題的方法。基礎摒除法可以分為行摒除、列摒除、九宮格摒除。
實際尋找解的過程為:
尋找九宮格摒除解:找到了某數在某一個九宮格可填入的位置只余一個的情形;意即找到了 該數在該九宮格中的填入位置。
尋找列摒除解:找到了某數在某列可填入的位置只余一個的情形;意即找到了該數在該列中的填入位置。
尋找行摒除解:找到了某數在某行可填入的位置只余一個的情形;意即找到了該數在該行中的填入位置。
基礎摒除法的提升方法是區塊摒除法,是直觀法中使用頻率最高的方法之一.
唯一解法
當某行已填數字的宮格達到8個,那么該行剩余宮格能填的數字就只剩下那個還沒出現過的數字了。成為行唯一解.
當某九宮格已填數字的宮格達到8個,那么該九宮格剩余宮格能填的數字就只剩下那個還沒出現過的數字了。成為九宮格唯一解.
唯余解法
唯余解法就是某宮格可以添入的數已經排除了8個,那么這個宮格的數字就只能添入那個沒有出現的數字.
區塊摒除法
區塊摒除法是基礎摒除法的提升方法,是直觀法中使用頻率最高的方法之一.
余數測試法
所謂余數測試法就是在某行或列,九宮格所填數字比較多,剩余2個或3個時,在剩余宮格添入值進行測試的解題方法.
隱性唯一候選數法
當某個數字在某一列各宮格的候選數中只出現一次時,那么這個數字就是這一列的唯一候選數了.這個宮格的值就可以確定為該數字. 這時因為,按照數獨游戲的規則要求每一列都應該包含數字1~9,而其它宮格的候選數都不含有該數,則該數不可能出現在其它的宮格,那么就只能出現在這個宮格了. 對于唯一候選數出現行,九宮格的情況,處理方法完全相同。
三鏈數刪減法
找出某一列、某一行或某一個九宮格中的某三個宮格候選數中,相異的數字不超過3個的情形, 進而將這3個數字自其它宮格的候選數中刪減掉的方法就叫做三鏈數刪減法。
隱性三鏈數刪減法
在某行,存在三個數字出現在相同的宮格內,在本行的其它宮格均不包含這三個數字,我們稱這個數對是隱形三鏈數.那么這三個宮格的候選數中的其它數字都可以排除.
當隱形三鏈數出現在列,九宮格,處理方法是完全相同的.
------------------------------------------------------
修改為:在某行,存在三個候選數字分別出現在三個宮格內,
在本行的其它宮格均不包含這三個數字,我們稱這個數對是隱形三鏈數.那么這三個宮格的其它候選數都可以排除.
當隱形三鏈數出現在列,九宮格,處理方法是完全相同的
或者: 利用“找出某3個數字僅出現在某行、某列或某一個九宮格的某三個宮格候選數中的情形,進而將這三個宮格的候選數刪減成該3個數字”的方法就叫做隱性三鏈數刪減法(Hidden Triples)。
矩形頂點刪減法
矩形頂點刪減法和直觀法講到的矩形摒除法分析方法是一樣的。矩形頂點刪減法在識別時比較不容易找到,所以最好先使用其它的方法。
三鏈列刪減法
三鏈列刪減法是矩形頂點刪減法的擴展,如果不清楚矩形頂點刪減法,可以參考矩形頂點刪減法,以便于更容易理解本節內容。 利用“找出某個數字在某三列僅出現在相同三行的情形,進而將該數字自這三行其他宮格候選數中刪減掉”; 或“找出某個數字在某三行僅出現在相同三列的情形,進而將該數字自這三列其他宮格候選數中刪減掉”的方法 就叫做三鏈列刪減法。
關鍵數刪減法
在進入到解題后期,利用前面講到的唯一候選數法、隱性唯一候選數法、 區塊刪減法、數對刪減法、隱性數對刪減法、 三鏈數刪減法、隱性三鏈數刪減法、矩形頂點刪減法、 三鏈列刪減法都無法有進展的時候,可以考慮使用關鍵數刪減法。關鍵數刪減法就是在后期找到一個數,這個數在行(或列,九宮格)僅出現兩次的數字。我們假定這個數在其中一個宮格類,繼續求解,如果發生錯誤,則確定我們的假設錯誤。如果繼續求解仍然出現困難,不妨假設這個數在另外一個宮格,看能不能得到錯誤。這就是關鍵數刪減法.
排除法
當某一列,某一行或某一宮里已填7個數字時,可采用排除法,排除不可能出現在這個格子的數,從而確定格子里應該填什么數。比如某一行已填1,3,4,5,7,8,9,還剩2,6,而其中一個空格所在的列上已有了2,可知這個空格里不可能是2,那么另外一個空格里一定是2,那么這個空格里一定是6。
當某一列,某一行或某一宮里已填6個數字時,也可采用排除法。 |