您好,肖大哥就為大家解答關于數獨求解算法,數獨求解相信很多小伙伴還不知道,現在讓我們一起來看看吧!
1、數獨解法全是由規則衍生出來的,基本解法分為兩類思路,一類為排除法,一類為唯一法。
2、更復雜的解法,最終也會歸結到這兩大類中。
3、下邊以圖示簡單介紹幾種解法,只要你花幾分鐘看一遍,馬上就可以開始做數獨了。
4、數獨直觀法解題技巧主要有:唯一解法、基礎摒除法、區塊摒除法、唯余解法、矩形摒除法、單元摒除法,余數測試法等。
5、 編輯本段基礎摒除法 數獨技巧 基礎摒除法就是利用1~9的數字在每一行、每一列、每一個九宮格都只能出現一次的規則進行解題的方法。
6、基礎摒除法可以分為行摒除、列摒除、九宮格摒除。
7、 實際尋找解的過程為: 尋找九宮格摒除解:找到了某數在某一個九宮格可填入的位置只余一個的情形;意即找到了該數在該九宮格中的填入位置。
8、 尋找列摒除解:找到了某數在某列可填入的位置只余一個的情形;意即找到了該數在該列中的填入位置。
9、 尋找行摒除解:找到了某數在某行可填入的位置只余一個的情形;意即找到了該數在該行中的填入位置。
10、 看能用基礎摒除法確定B2、C8、E7、F6、I5的數字嗎? 數獨 A4=9,則A行其它格排除9,G1=9,第1列排除數字9,D3=9,第3列排除數字9。
11、 由基礎摒除法,第A1所在的九宮格內9只有一個唯一的位置,即確定B2=9。
12、 A4=9,則4列其它格排除9,G1=9,第G行排除數字9,H9=9,第H行排除數字9。
13、 數獨 由基礎摒除法,第G4所在的九宮格內9只有一個唯一的位置,即確定I5=9。
14、 A4=9,則4列其它格排除9,D3=9,第D行排除數字9,I5=9,第5列排除數字9。
15、 由基礎摒除法,第D4所在的九宮格內9只有一個唯一的位置,即確定F6=9。
16、 數獨 A4=9,則A行其它格排除9,B2=9,第B行排除數字9,H9=9,第9列排除數字9。
17、 由基礎摒除法,第A7所在的九宮格內9只有一個唯一的位置,即確定C8=9。
18、 C8=9,則8列其它格排除9,D3=9,第D行排除數字9,F6=9,第F行排除數字9,H9=9,第9列排除數字9。
19、 由基礎摒除法,第D7所在的九宮格內9只有一個唯一的位置,即確定E7=9。
20、 編輯本段唯一解法 當某行已填數字的宮格達到8個,那么該行剩余宮格能填的數字就只剩下那個還沒出現過的數字了。
21、成為行唯一解. 當某列已填數字的宮格達到8個,那么該列剩余宮格能填的數字就只剩下那個還沒出現過的數字了。
22、成為列唯一解. 當某九宮格已填數字的宮格達到8個,那么該九宮格剩余宮格能填的數字就只剩下那個還沒出現過的數字了。
23、成為九宮格唯一解. 編輯本段唯余解法 唯余解法就是某宮格可以添入的數已經排除了8個,那么這個宮格的數字就只能添入那個沒有出現的數字。
24、 數獨 A5=?,其實這就是唯余解法的原理,很簡單,但是實際使用時就不會容易發現了。
25、 數獨 能使用唯余解法確定B7的值嗎? 能確定E9,A9,B9,C9的值嗎? 由區塊摒除法可以得出E9=9。
26、 數獨技巧 數獨技巧 由唯余解法,C9=2。
27、 同樣,可以得到其他。
28、 編輯本段區塊摒除法 數獨技巧 區塊摒除法是基礎摒除法的提升方法,是直觀法中使用頻率最高的方法之一. 所謂區塊,就是將行分成3個三個相連的小方塊構成,列也是分成3個三個相連的小方塊構成.九宮格同樣被看成由3個三個相連的小方塊構成,如下面示意圖: 數獨 區塊摒除法的核心思想如下面解釋(以行為例),對于在列也是相同的道理。
29、 假如(G1~G3)黃色區域區塊其中之一是數字9。
30、 數獨 則,(H4~H6)藍色區域可能含有數字9,否則(I4~I6)綠色區域含有數字9。
31、 假定我們已確定(G1~G3)黃色區域區塊其中之一是數字9,(H4~H6)藍色區域含有數字9,則:在(I7~I9)綠色區域一定含有數字9.如果再通過其它方法確定(I7~I9)綠色區域中某兩個宮格不能為數字9,則就能確定數字9在(I7~I9)區塊的具體位置。
32、 編輯本段余數測試法 所謂余數測試法就是在某行或列,九宮格所填數字比較多,剩余2個或3個時,在剩余宮格添入值進行測試的解題方法. 數獨技巧 在B行,C行剩余未填的數字只有兩三個了,這時可以使用余數測試法進行解題。
33、 我們看B行,B3可能添入的數為5或者6,我們從5開始測試 我們在B3添入5進行測試,得到左圖,沒有得出出錯的推斷,所以B3=5可能是正確的判斷,如果能判斷出B36,則才能肯定B3=5。
34、所以下面我們還需要用B3=6進行測試。
35、 在B3添入6,推出B8=5。
36、觀察C行,C7,C8,C9必含有數字5。
37、證明B3=6是錯誤的.從而得出B3=5。
38、 編輯本段唯一候選數法 數獨技巧 候選數法解題的過程就是逐漸排除不合適的候選數的過程,當某個宮格的候選數排除到只有一個數的時候,那么這個數就是該宮格的唯一的一個候選數,這個候選數就是解了。
39、編輯本段隱性唯一候選數法 當某個數字在某一列各宮格的候選數中只出現一次時,那么這個數字就是這一列的唯一候選數了.這個宮格的值就可以確定為該數字.這時因為,按照數獨游戲的規則要求每一列都應該包含數字1~9,而其它宮格的候選數都不含有該數,則該數不可能出現在其它的宮格,那么就只能出現在這個宮格了.對于唯一候選數出現行,九宮格的情況,處理方法完全相同。
40、 數獨技巧 這是制作好的一張候選數表,注意觀察B5,B9,D1。
41、 可以看出在第1列,數字9只在D1出現。
42、在第5列,數字3只在B2出現。
43、在B9所處的九宮格里,數字9只有在B9出現。
44、所以"9"是第1列的隱形唯一候選數,”3”是第5列的隱形唯一候選數,”9”是A7九宮格的隱形唯一候選數。
45、[1]? 編輯本段三鏈數刪減法 找出某一列、某一行或某一個九宮格中的某三個宮格候選數中,相異的數字不超過3個的情形,進而將這3個數字自其它宮格的候選數中刪減掉」的方法就叫做三鏈數刪減法。
46、編輯本段隱性三鏈數刪減法 在某行,存在三個數字出現在相同的宮格內,在本行的其它宮格均不包含這三個數字,我們稱這個數對是隱形三鏈數.那么這三個宮格的候選數中的其它數字都可以排除. 當隱形三鏈數出現在列,九宮格,處理方法是完全相同的.編輯本段矩形頂點刪減法 矩形頂點刪減法和直觀法講到的矩形摒除法分析方法是一樣的。
47、矩形頂點刪減法在識別時比較不容易找到,所以最好先使用其它的方法。
48、 三鏈數刪減法的原理如下面圖示: 在H行,H2,H5,H7的候選數(12),(23),(13),構成三鏈數,那么123這三個數在H行將只能出現在H2,H5,H7,那么本行其它宮格就可以刪除這3個候選數了。
49、這是三鏈數發生在行的情況。
50、 在G7所在九宮格,G7,H8,I9的候選數(12),(23),(13),構成三鏈數,那么123這三個數在這個九宮格將只能出現在G7,H8,I9,那么本九宮格其它宮格就可以刪除這3個候選數了。
51、這是三鏈數發生在九宮格的情況。
52、 三鏈數是數對的擴展,我們在對上面的三鏈數進行擴展,得到右邊的特殊的三鏈數,只要保證在3個宮格內,其包含的候選數也為3個,就都符合我們的要求,比如(123,123,123),(12,12,123)都符合要求。
53、 我們進一步再擴充,發現只要在N個宮格內,其包含的候選數也恰為N個,那么處理和三鏈數是相同的道理,這樣就形成了四鏈數,比如(12,23,34,14),(123,123,14,1234)等。
54、甚至可以擴充到五鏈數,七鏈數(雖然在實際解題中作用不大了)。
55、平時我們用到最多的就是三鏈數,四鏈數了。
56、 在A4所在九宮格,我們看到B4~B6,形成三鏈數,則本九宮格其它宮格就可以去除候選數"2","7","9",這樣就得到C6=4。
57、 同上面完全相同的一副圖,在A行,A7~A9形成由179構成的三鏈數,排除本行其它宮格的候選數179后得到A3=3。
58、 編輯本段三鏈列刪減法 三鏈列刪減法是矩形頂點刪減法的擴展,如果不清除矩形頂點刪減法,可以參考矩形頂點刪減法,以便于更容易理解本節內容。
59、利用“找出某個數字在某三列僅出現在相同三行的情形,進而將該數字自這三行其他宮格候選數中刪減掉”;或“找出某個數字在某三行僅出現在相同三列的情形,進而將該數字自這三列其他宮格候選數中刪減掉”的方法就叫做三鏈列刪減法。
60、編輯本段關鍵數刪減法 在進入到解題后期,利用前面講到的唯一候選數法、隱性唯一候選數法、區塊刪減法、數對刪減法、隱性數對刪減法、三鏈數刪減法、隱性三鏈數刪減法、矩形頂點刪減法、三鏈列刪減法都無法有進展的時候,可以考慮使用關鍵數刪減法。
61、關鍵數刪減法就是在后期找到一個數,這個數在行(或列,九宮格)僅出現兩次的數字。
62、我們假定這個數在其中一個宮格類,繼續求解,如果發生錯誤,則確定我們的假設錯誤。
63、如果繼續求解仍然出現困難,不妨假設這個數在另外一個宮格,看能不能得到錯誤。
64、這就是關鍵數刪減法. 如果數字“1”可能出現在B行、E行、G行的黃色宮格,則符合“某個數字在某三列僅出現在相同三行的情形”,符合三鏈列刪減法的要求。
65、 則紅色宮格均不包含候選數“1”。
66、 這時上圖的一個變形。
67、其中一行的“1”只能放在這一行的兩個位置。
68、 處理和上圖一樣,紅色宮格均可以排除候選數“1”。
69、 數字"6"在第2列,第6列,第8列。
70、均出現在A,B,I行。
71、其中在第6列僅出現B,I行,仍然符合三鏈列刪減法的要求。
72、 編輯本段直觀法解題技巧 數獨直觀法解題技巧主要有 單元限定法、單元排除法、區塊排除法、唯一余解法、矩形排除法、逐行逐列依次掃描法、綜合掃描法、唯一候選數法、隱性唯一候選數法、 區塊刪減法、數對刪減法、隱性數對刪減法、三鏈數刪減法、隱性三鏈數刪減法、矩形頂點刪減法、三鏈列刪減法、關鍵數刪減法、關連數刪減法。
73、 1.聯除法. 在并排的三個九宮格中的兩排尋找相同數字,再利用九宮格得出另一排中該數字位置,該方法適用于中高級數獨. 2.巡格法 找出在每個九宮格中出現頻率較高的數字,得出該數字在其余九宮格內位置,該方法應用于方法一之后. 3.排它法 這個方法是解決問題的關鍵,易被常人所忽略.在各行列或九宮格中觀察,若有個位置其它數字都不能填,就填余下的數字 4.待定法 此方法不常用卻很有效.暫時確定某個數字在某個區域,再利用其來進行排除 5.行列法 此方法用于收官階段,利用先從行列突破來提高解題效率. 6.假設法 作為一名高手,我不提倡這種方法.即在某個位置隨機的填上一個數字,再進行推演,并有可能最終產生矛盾而否定結論. 7.頻率法 這種方法相比于上一種方法更能提高效率.在某一行列或九宮格列舉出所有情況,再選擇某位置中出現頻率高的數字 8.候選數法 使用候選數法解數獨題目需先建立候選數列表,根據各種條件,逐步安全的清除每個宮格候選數的不可能取值的候選數,從而達到解題的目的。
74、 使用候選數法一般能解比較復雜的數獨題目,但是候選數法的使用沒有直觀法那么直接,需要先建立一個候選數列表的準備過程,所以實際使用時可以先利用直觀法進行解題,到無法用直觀法解題時再使用候選數法解題。
75、 候選數法解題的過程就是逐漸排除不合適的候選數的過程,所以在進行候選數刪除的時候一定要小心,確定安全地刪除不合適的候選數,否則,很多時候只有重新做題了。
76、有了計算機軟件的幫助,使得候選數表的維護變得輕松起來。
本文就講到這里,希望大家會喜歡。