唯一性的技巧基於標準數獨只能有一個答案。
如果你做的數獨沒有提前說明會有多個答案的話,我覺得這個數獨是合格的。在數獨生成算法中,在挖空的時候會有一步是否有多解的檢測,如果有多解,說明這個格子不能挖掉。
這個技巧裡面有兩個典型結構,Unique Rectangle (UR)/唯一矩形 和 Binary Universal Grave (BUG)/全雙值墳墓
Unique Rectangle (UR)
看上面這個題目,剩下 4 個格子沒有填,無論 R2C1 = 6 還是 R2C1 = 8,這個數獨都可以解決,符合數獨的基本規則,同一行、列、宮都是 1-9 不重複。但這個數獨有兩個解了,他並不是一個合格的標準數獨。
Binary Universal Grave (BUG)
BUG 是 UR 的一種更加廣泛的變形,所有候選數的格子都是雙值,而且每個候選數在行、列、宮都只出現 2 次,所以這個數獨要麼有雙解,要麼沒有解。
好了,上面說了這兩種結構,但並沒有任何的解題技巧,因為前面這兩種結構都會導致雙解,這並不是我們想要的,如果我們做的是標準數獨(只有一個解),那麼我們肯定不能讓這樣的結構出現,這樣我們的解題方法就來了。
再次強調,下面的解法只能針對標準數獨(只有一個解)
好,我們先說容易理解的
BUG+1
什麼是 BUG + 1 呢,BUG 是指當你填完所有的候選數,已經無法再確定任何數字的時候,所有未填上數字的格子都是兩個候選數,這樣的結構是 BUG(全雙值墳墓),那當其中有一個格子是 3 個候選數,這樣的結構是 BUG+1。
BUG+1 的解決方法很簡單,我們需要避免這個數獨成為 BUG 結構,所以應該把填上會出現 BUG 結構的數字刪除,簡單理解就是那一個單元只出現兩次的數字刪除(或者說那個格子的數字就是那一個單元出現 3 次的數字)
看一個例子
上圖中 R1C8,3 無論在行、列、宮都只出現了 2 次,5 也是如此,那麼 3 和 5 都可以刪除,R1C8 = 6
你們應該知道 R7C2 應該填什麼對吧,看哪個數字出現了 3 次。
好了,我再放一個看上去是 BUG+1,但不能用 BUG+1 技巧的例子上來。
看上去,R7C6 是 3 個數字,其他的都是兩個數字,但這個題目有一個問題是,9 在 R7 出現了 3 次,在 C6 也出現了 3 次,但和這個 3 值格子並沒有任何關係,所以它並不是一個 BUG +1 結構,也不能使用 BUG+1 技巧。
BUG+1 的解題方式就是利用標準數獨只有一個解這個技巧,我們要避免 BUG 出現,因為出現 BUG 要麼雙解要麼無解,那麼 BUG+2 是不是也可以用?
在某些時候,確實是可以的,來看例子
這是一個 BUG+2,R8C3 和 R2C8 裡面有兩個 3 值,出現 3 次的數字都是 4,我們要避免出現 BUG,那麼 R8C3 和 R2C8 的 4 至少要成立一個,用鏈來表示就是 R8C3{4}==R2C8{4},所以他們的交叉點可以刪除。
再看一個
R5C7 和 R7C7 都是 5 出現 3 次,R5C7{5}==R7C7{5},刪除他們共同作用格,就是 C7 上其他的 5
再留一個題目大家想想
這個題可以從全局唯一和局部唯一都可以解釋,歡迎評論中和我討論。
BUG 的技巧一定要是局勢符合定義才能用,上面我也給了不能用的反例,而且一定是標準數獨才能用,有一些 App 的題目沒有說明,但他卻不是唯一解,那也用不了這個技巧。App 的圖標我會放到下面。
上面這個數獨的題目會有雙解出現,就不要嘗試用這個技巧了。
BUG 的局勢並不會特別常見,但碰到的時候你們知道有這麼個方法會直搗黃龍。
UR 更常見一點,關於 UR 的解題方法我們放到下一篇中來討論。
最後廣告時間
如果你是 iOS 系統,可以下載我做的 App 來訓練這些技巧,專家難度一定會讓你用上這些高級技巧的
Appstore 搜索 禪數獨 下載