標籤:

第39講:塗色法

塗色法(Coloring),是一種利用大量共軛對來判斷刪數的一種技巧。

Part 1 色鏈法則(Simple Coloring Type 1)

如圖所示,我們發現盤面之中有很多關於1的共軛對。比如r17、c46、b28。我們知道,共軛對指的是兩端有且僅有一個為真的兩數。那麼我們不妨將共軛對分成兩種顏色,以標記出兩種不同的填數情況,然後再針對這一種已經標好的填數情況,再觀察其他共軛對是否有聯繫。比如圖中r1(1)和b2(1)的共軛對就有聯繫,如果將r1c3(1)塗第一種顏色,那麼r1c5(1)就只能塗另外一種顏色,那麼b2里,r2c6(1)還是得塗第一種顏色(要保持共軛對兩端塗色不同,表示不同填數情況)。

隨之塗好一些候選數顏色後,我們發現,r2c6(1)和r3c9(1)塗色不同,而且跨區。這意味著這兩個數有且僅有一個是對的。所以,r2c78(1)就不能有填數,否則將會和r2c6(1)和r3c9(1)其中一個重複,違背數獨規則;當然,r3c23<>1也是一樣的思路。

這種結構使用的是最為基礎的形式,稱為色鏈(Simple Coloring Type 1),因為它用到共軛對串聯起來的效果,就像鏈一樣,把強弱關係串聯起來。

Part 2 色分法則(Simple Coloring Type 2)

塗色法很有趣的地方在於,它還有更奇妙的邏輯。

如圖所示,我們找出所有關於8的共軛對。分別圖上不同的顏色,並按照剛才色鏈的方式,顏色要交替塗。隨後我們發現,比如c5,r6c5(8)塗第一種顏色,r9c5(8)就得塗第二種顏色。而走另外一個方向,r6上,r6c7(8)也只能塗第二種顏色,r3c7(8)第一種顏色,r1c9(8)第二種顏色,r1c6(8)第一種顏色,c7c6(8)第二種顏色。

這個時候我們發現,r7c6(8)和r9c5(8)是同一種塗色,這意味著同一種填數情況發生在同一個宮內,這明顯是違背數獨規則的,所以所有同一種塗色下的候選數全部刪除。

這個技巧稱為色分(Simple Coloring Type 2)。確實很實用,不過有一點暴力就是了。

謝道台老師把這個技巧翻譯為分色法,其實也是一樣的。

Part 3 複合色鏈法則(Multi Coloring)

複合色鏈法就是色鏈法更難一些的邏輯。

如圖所示,將一些共軛對塗色,不過,b3(1)有3個1,沒辦法形成共軛對,所以我們只能為兩邊的兩種情況分別塗上兩套不同的顏色。然後b3(1)就用「不同真」的方式連起來。

此時,圖中有四種不同的塗色方式(綠淺、綠深、橙淺、橙深),也就是說圖中有四種不同的填數情況,只是,b3(1)不同真,所以意味著「綠淺」和「橙淺」不同真。

  • 如果是綠淺為真,那麼由於綠淺和橙淺不同真的關係,橙色的深淺兩種顏色(情況)下,只得橙深為真,因此可以刪除r5c23(1);
  • 如果是綠深為真,可以刪除r5c23(1)。

就綠色的情況而言,至少有一個情況成立,但都可以刪除r5c23(1),所以r5c23<>1。

這個思路就更加複雜一些了,用到了兩種不同的塗色方案,並使用了b3(1)這裡用「不同真」的類似於弱關係的東西連接起來了。這種技巧稱為複合色鏈(Multi Coloring)。

Part 4 進階塗色(3D Medusa)

接下來就剩下最後一種塗色辦法了。前面三種都只介紹到同數的塗色方案,那麼異數的呢?

如圖所示,找到圖中所有雙值格和雙位區(說白了就是找共軛對)。我們可以任選一些雙值格,雙值格內兩數明顯是共軛對關係,所以直接給它們塗上兩種不同的顏色。

最後我們發現,r9c6處有兩種相同塗色,也就得到橙色塗色的填數是有矛盾的,故所有橙色數字全部刪除。這種結構稱為進階塗色(Advanced Coloring/3D Medusa),當然了,也有一個夢幻的名字:三維美杜莎。美杜莎就是那個傳說有很多頭的人物。

當然了,它也有其他的用法。

如圖所示,找到大量共軛對後,我們發現,r3c5(3)和r6c7(3)有不同的塗色,這兩種填法至少有一種會成立,所以r3c7(3)必然可以刪除。

以及這種。

當然這個就不啰嗦了,你自己看吧!


推薦閱讀:

第24講:區塊組鏈
第17講:融合式待定數組
第60講:網(2)——網的基礎理解
第26講:ALS的一般拓展結構
第48講:複雜致命結構(8)——唯一方陣

TAG:數獨 |