標籤:

第33講:標準環的基本理解

Part 1 標準環的定義

如圖所示,鏈的寫法如下:

r1c4(4)=r1c8(4-2)=r1c9(2)-r7c9(2=8)-r7c4(8=4)-r1c4(4)

發現了兩點神奇的現象:r1c4(4)首尾成環了,而且強弱關係是交替的,也就意味著,就圖上的情況而言,隨便找個藍色節點都有可能成為開頭。於是我們隨便選了個節點,比如r1c4(4)作為了開頭,然後寫成了環形。

還有一點呢,是刪數,所有紅色的都是刪數,但這一次,紅色的刪數比起之前用過的鏈技巧而言,刪數多太多了。那麼,這一點如何推導呢?

要不,反正都是個環結構,隨便找個弱關係,給它拆掉。比如我們拆掉最下方的r7c4(8)-r7c9(8)的弱關係。然後鏈變成這樣:

這樣就會發現,它就是一個AIC了。那麼,刪數呢,就是兩個8共同對應的區域(r7)了。那,我再留下這個弱關係,去斷開剩下的隨便一個弱關係,也可以得到對應的刪數,所以所有刪數如最開始的盤面所示。

這種結構特殊之處就在於,鏈的首尾是完全拼接在一起的,而且鏈頭還不好去找到唯一的那一個位置,這就區別於之前講到的不連續環了。不連續環雖然名叫不連續環,是有環這個字的,但是我們依然知道它是一種鏈結構,並且有頭有尾,這一點就和今天講到的這個東西不同了。

那麼,這樣的特別結構,叫做標準環(Continuous (Nice) Loop),一般簡稱

看到Nice大括弧了嗎?Nice一詞,在當下的所有環結構來說,都是需要加上的,但是有些時候,環結構只有局部的弱關係的刪數才正確,這樣的環就沒有Nice一詞修飾,這一點將在後面的內容才會講到。

最後需要引起注意的是,弱關係也包括單元格內的弱關係,比如圖中的r1c8(2-4)時候,可以刪掉r1c8(7),至於原因嘛,把鏈從r1c8(2-4)這裡拆開,得到了一條鏈頭為r1c8(4),鏈尾為r1c8(2)的AIC,它們的交集,因為是異數的,而且同一單元格,所以交集只能是r1c8內的其餘候選數。所以,這一點千萬別忘記了。

所以說,環有哪些性質可以直接使用呢?

Part 2 標準環的主要性質和論證

標準環具有如下的特徵(請最好背下它們):

  1. 任意弱關係都能直接拆掉,並得到一條鏈,從而獲得當前的刪數效果;
  2. 任意節點都可以作為整條鏈的鏈頭;
  3. 環裡面的所有的弱關係都可看作強關係;
  4. 環的長度一定為偶數;
  5. 環內的填數情況一共只有兩種。

那麼,這五點我將一一論證。

第一點,這是環的刪數原則和基本思想。所以這一點我就不用說明了(就是拆成鏈結構,然後找刪數);

第二點,看似不正確,因為圖上所有藍色節點起頭強關係,倒是成立,但是圖中的綠色節點起頭是弱關係,好像不太對(鏈需要強關係開頭)。當為綠色節點時,將圖中的所有強弱關係反向,就可以了;(如果不懂意思的話,就照著這裡的說法,把圖上的環再處理一下,你就知道了。)

第三點,這其實是因為,在刪數過程之後,弱關係所在區域下,就只剩下兩個節點可以填這個數字了。(比如r7(8)的弱關係,在刪除掉剩下的所有8之後,r7(8)就可以滿足強關係定義了。)

第四點,強弱關係數量一樣,強關係有n個,弱關係就有n個,那長度自然是2n個,2n是一個偶數,沒毛病!

第五點,要麼這個環結構的所有的藍色節點全部正確,要麼所有的綠色節點全部正確。此外別無其他可能。我們在推理的過程都是最簡單的「不填 -> 填 -> 不填 -> 填 –> ……」,這樣的周而復始的循環。而環結構之中,由於推理最終回回到最初的位置,並且仍舊能夠按照原來假設所定的填數狀態繼續重新推理,所以這一定是其中的一種情況,而根據性質2,我們知道,任何節點都能做起始點,也就是說,我們不妨將節點切換到與其相鄰(它的上一個候選數填數狀態或者其下一個候選數填數狀態)的位置上去,讓它作為鏈頭,這個時候填數狀態就能全部交換了。但是,由於結構內就兩種填數情況,所以這就說明了,環結構內一定只涉及兩種填數。要麼前者對,要麼後者對。

所以,不連續環並不滿足這些特性,只是一種結構成環而邏輯無環的特別情況罷了。

Part 3 不規則Wing結構的環結構

這裡提一個技巧:隔一格內對匹配法(M-Wing)。它首尾成環時,是欠一數對。

如圖所示,它是M-Wing首尾成環的特別結構。

r89c1(4)=r9c2(4-7)=r89c1(7)-r1c1(7=4)-r89c1(4)

不過你也可以看到,它實質上就是一個欠一數對。

Part 4 雙位區魚結構的環結構

圖上,就是二鏈列的環結構。我們把r2和r5看作強關係,把c3和c5看作弱關係,把它連接起來,自然就是一個環結構了。當然了,更大一些的魚結構一樣可以。

我們可以得到一點:魚結構的定義域就是強關係,刪除域則為弱關係

如圖所示,這個魚結構的定義域為r357。把定義域看成強關係,把刪除域看成弱關係,這樣就可以了。不過,你應該也可以從圖上看出,這是三鏈列,三鏈列完整的結構應該是3×3的,如果補全之後,定義域就不好轉化為強關係來觀察了,它就會產生分支的現象,導致還是得分情況討論。

所以這裡敘述的結構是最簡情況下的魚結構。這種魚稱為雙位區標準魚(Bilocation Region Basic Fish)。雙位區(Bilocation Region)一詞,指的是共軛對所在區域。換句話說,如果有一個區域下只有兩個位置可填某數時,這個區域就是雙位區。

Part 5 雙值格數組的環結構

那麼,標準魚是二維同數數組,那麼同理,雙值格數組是否應該也是一種環結構呢?

答案是肯定的。如圖所示。

喏,這就是一個有隱性數對,它的環結構長這樣。

r3c8(8)=r3c9(8-9)=r3c8(9-8)

所以它自然就是一個環了。

要不,顯性數對,想想看怎麼構成環結構的吧!

下一節,將告訴你如何在嵌入ALS和AUR後的超環結構里找到刪數。


推薦閱讀:

第3講:區塊組
第6講:數組的觀察和互補
第12講:唯一矩形(拓展構型)
第24講:區塊組鏈
第16講:欠一數組

TAG:數獨 |