各位好這裡是亞夜。
今天繼續(xù)來分享一下數(shù)獨的高階解法。
所謂的高階解法的定義呢,
敝人是這樣下的:
出現(xiàn)無法利用行、列、宮的既有數(shù)字來排除候選數(shù)並得到解答的時候,
用來突破僵局刪除多餘候選數(shù)直到找出解答的方式。
面對唯一解的數(shù)獨題時,
在陷入僵局時使用試誤法式絕對可行的,
只是這種方法很浪費時間也很不推薦使用,
這是真的沒步的時候才會用的方式。
大多數(shù)的情況下,
還是不推薦使用試誤法,
畢竟用踹的那誰都能踹出正確答案來,
那又如何能自稱高手呢?
【例題】
首先先看數(shù)字1:
首先當(dāng)然還是先做筆記啦!
按照基本定義,
同一個行、列、宮裡面,
一個數(shù)字只能出現(xiàn)一次,
那麼反過來說,
在出現(xiàn)過某個數(shù)字的行、列、宮裡其他的格子裡,
絕對不可能出現(xiàn)該數(shù)字。
因此我們可以把數(shù)字1所在的位置延伸出去的行、列、宮都排除數(shù)字1的可能性,
只在剩下的區(qū)域填入數(shù)字1的候選。
此時第二宮藍(lán)框的位置裡,
雖然不能確定數(shù)字1在哪個位置,
但可以確定第八格或第九格必然有一格是1,
這意味著第三行的1必然只會出現(xiàn)在那兩格之一,
因此第三行的第八、九兩格可以將候選數(shù)1排除,
如此一來便能確定第三宮的數(shù)字1一定是在第三格。
接著看數(shù)字2:
同樣的排除方式,
很快地就能找到新的數(shù)字。
接著當(dāng)然就將2的候選位數(shù)都填上:
接著看數(shù)字3:
接著看數(shù)字4:
按照相同法則將候選數(shù)填上,
不過這裡第一宮出現(xiàn)了今天第一組數(shù)組:24。
如果同一行、同一列或同一宮裡面的n個格子的候選數(shù)完全只由n個數(shù)字所組成,
或者同一行、同一列或同一宮裡面的n個候選數(shù)完全只在n個格子裡面的話,
那麼就能保證這n個數(shù)字必然只出現(xiàn)在這n個格子裡面,
同時其他數(shù)字必不在這n個格子裡面。
這裡就發(fā)生了正個情況:
第一宮的24兩個數(shù)字都只出現(xiàn)在第七、九兩格,
那不論哪一個是2,
另一個必然是4對吧?
因此這兩格必然都只會是24而不可能是其他數(shù)字,
故我們可以直接把3排除。
之後看其他候選數(shù)時也能直接不考慮這兩格了。
接著看數(shù)字5:
同樣的方式填入候選數(shù),
注意避開已經(jīng)被數(shù)組鎖死的格子(紅格)。
接著看數(shù)字6:
接著看數(shù)字7:
避開第一宮的24數(shù)組後,
第七宮直接就能找到7的位置了。
而因為那個7的位置同時也是第七行唯二的2的位置,
因此馬上就能確定第七行2的位置是在第六格:

然後就是一連串的填2:
到這裡就沒有可以再解的了,
那麼就繼續(xù)往8看下去:
這裡又出現(xiàn)一個數(shù)組:
第九宮的58數(shù)組,
所以第九格的候選數(shù)4可以消去。
接著看數(shù)字9:
都已經(jīng)看到數(shù)字9了還沒有任何候選數(shù),
就表示數(shù)字1~8都不能填,
那擺明空格就只能填數(shù)字9了對吧?
把候選數(shù)9一個一個填上去,
發(fā)現(xiàn)第三宮9的位置可以確定,
然後再繼續(xù)把確定的數(shù)字填上:
到這裡,
接著就是真正的戰(zhàn)場了。
現(xiàn)在這裡有兩種解法,
但會導(dǎo)向同一種結(jié)果:
解法1:
望向第七宮的下半部分,
藍(lán)框的三格都只有189,
因此可以確定189必須分別位於這三格。
那麼此時就能把同行、同宮中的189通通消除,
並且確定第九行第九格是5,
併再次消除候選數(shù)5。
同時第九宮的8也確定了。
解法2:

望向第八宮的15數(shù)組(藍(lán)框),
刪去相關(guān)範(fàn)圍(紅框)內(nèi)的15,
同時確定第八行第九格為8,
進而消除候選數(shù)8。
同時第九宮第九格也會確定為5。
兩種解法,
會導(dǎo)向同一種結(jié)果:
接著注意第二宮的68數(shù)組,
刪去對應(yīng)範(fàn)圍內(nèi)的68:
接著出現(xiàn)35數(shù)組:
接著就確定第三宮3的位置了。
接著第七列的68數(shù)組可以確定5的位置:
確定好5的位置後看第一宮的78數(shù)組,
刪除候選數(shù)8以後確定第一行8的位置後,
又有一連串的數(shù)字可以解出:
繼續(xù)延伸:

止步於此。
接著第四列還有一組數(shù)組:467,
這樣我們就還能再刪一些候選數(shù)掉。
這一組數(shù)組比較特殊:
第五列的67只出現(xiàn)在這兩格,
因此這兩格必定是67,
所以可以刪去紅框的候選數(shù)9。
接著看上圖的部分,
紅框框起來的部分是對稱的而且都由1359所構(gòu)成,
除了綠框的位置有一個8以外。
如果綠框位置不是8,
那麼很明顯的這個數(shù)獨就會出現(xiàn)重解,
因為兩列都是雙值而且可以彼此交換而不影響結(jié)果對吧?
所以綠框位置必然是8才能避免矛盾。
到這裡敝人就撞車了,
找不到可以額外再消去數(shù)字的方法。
如果有人可以幫忙解難,
敝人在這裡先謝謝你。
接下來只好使用大絕招:試誤法。
試誤法是這樣,
簡單說就是猜。
如果你一猜即對,
那就是答案;
如果你猜錯,
就代表能消去那個數(shù)字。
而,
為了節(jié)省猜的時間,
我們最好挑一個猜下去就能一翻兩瞪眼的格子下手,
也就是找一個跟周圍有強相關(guān)又不對稱又只有雙值的格子下手。
敝人是這樣選的:
這部分因為形成了一個迴路:
對稱而且都有2346,
很大機率會在這裡直接斷掉線索,
那會導(dǎo)致會出現(xiàn)要猜第二次的情況發(fā)生,
因此敝人會傾向於去尋找右半部的雙值格子。
既然要從右邊的格子開始猜,
就選擇第三宮的第四格開始。
假設(shè)6是錯的,
那這樣一步一步推敲後就會在最後在第四宮出現(xiàn)矛盾,
因此我們猜錯了,
8才是錯的。
解到這邊基本上就是解完了。
除了藍(lán)色格子以外所有格子都是雙值,
這時候我們注意那個藍(lán)色格子。
假設(shè)藍(lán)色格子的數(shù)字不是4,
那你仔細(xì)看每一行每一列,
他們的數(shù)字一定都是兩兩成對存在的。
這什麼意思呢?
因為是兩兩成對,
就代表可以互換。
如果這個題目無解當(dāng)然就無解,
但如果有解,
因為可以互換,
便不具備唯一性,
那就與原假設(shè)不符。
換句話說,
為了滿足唯一性,
藍(lán)色格子必須是4,
這樣才能破壞兩兩成對的形式。
於是乎答案就是這麼一回事了。
正解。
當(dāng)然你可以去試試看,
如果剛剛假設(shè)的那格不是4會怎樣。
基本上最後一定會矛盾,
不信來打賭?
沒有靠真實技巧解出來,
所以算挑戰(zhàn)失敗。
罰自己被流放國外(咦?
封面圖片:《王冠之心》:見習(xí)女僕