數獨高級技巧(5):唯一性(Uniqueness)- 上篇

2020-03-26     數獨技巧

唯一性的技巧基於標準數獨只能有一個答案。

如果你做的數獨沒有提前說明會有多個答案的話,我覺得這個數獨是合格的。在數獨生成算法中,在挖空的時候會有一步是否有多解的檢測,如果有多解,說明這個格子不能挖掉。

這個技巧裡面有兩個典型結構,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 搜索 禪數獨 下載


文章來源: https://twgreatdaily.com/lUbOGHEBnkjnB-0zQGY5.html