標籤:

第8講:標準魚的觀察

上一次,我們講完了標準魚的運用。這一節我們來看一下,魚的觀察方式和一些相關的東西。

Part 1 標準魚的第二種理解思維

之前我們講到過,標準魚的思維是通過假設實現的。但是規格過大,假設就不太容易和輕鬆了。接下來我們將使用另外一種思維來理解它。當然,使用方式和刪除效果也是跟標準魚一樣的,只是改了個理解方式罷了。

首先,我們拿出之前的殘缺四鏈列(Incompleted Jellyfish)的示例給大家看。

細心的您可能已經發現了,我在上面標了一些數字。

具體操作是這樣的:找出標準魚的所有定義域後,補全結構的所有涉及單元格(儘管涉及的單元格被確定值覆蓋掉了,圖上補全後的四鏈列涉及r1679c1256這十六個單元格)。然後按次序為每一個單元格標註上數字1到4(因為是四鏈列,所以只能標註到4,定義域涉及的每一行,都是1到4按次序標註)。然後不管確定值單元格上的位置,將定義域的每一個區域(r1679)都抽象地看成「一個單元格」,然後把剛才標註的1到4抽象地看成「單元格內的候選數」。於是,你就可以這麼去理解了:

四個單元格,內都只有候選數1到4,所以是一個四數組。

哈?還有這種操作?!

是的,因為標準魚的邏輯和數組的邏輯是基本上一樣的,只是……

  • 標準魚:針對同一個數來說,在多個區域下,只能填入到幾處對應的不同的單元格上。
  • 數組:針對多種不同的數來說,在多個單元格下,只能填入幾種不同的候選數

一個部分一個部分拆開來看,數組和標準魚的定義,其實只是把「一種數」變為了「不同種數」、「區域」變成了「單元格」、「單元格」變成了「候選數」。所以,它們的定義是類比出來得到的。所以,標準魚又可以被稱為「二維同數數組」。

好了,這便是它的一種新的理解方式。那麼,上一節的有一個問題,就很好解釋明白了:

上一節題目:

如果一個結構,在c126下,只有{r1c12, r2c16, r4c26}六格填入7。那麼這個結構可否形成魚結構?答案是可以的,你可以思考一下為什麼,這裡也不過多描述,具體如果還是不懂的同學,可以在下方留言進行提問。

我們分別為補全後的這個結構標上數字1到3,然後忽略確定值所在的單元格,發現是可以類比數組定義的:填數情況為12、13、23的三數組,所以標準魚結構成立。

而另外一個問題:

上一節題目:

如果r1和r8的四個單元格,有兩格是「錯開」分布的,那結構還可以用嗎?

不可以。因為錯開分布後,如果是標準魚結構,就無法標註到錯開分布的那一格上去,或者標註數字時候,因為在第3個位次上,就只能標註為13和12的樣子,這樣明顯不可以構成數對,所以二鏈列也不成立。


Part 2 標準魚的互補

剛才說到了,標準魚的定義是類比於數組的,所以,數組有互補,標準魚也有。只是,標準魚的互補,用語言闡述起來就很不容易了,理解倒是很好理解,就是不好表述出來。

如圖所示,這是一個殘缺五鏈列(Incompleted Starfish/Squirmbag)。定義域由五行組成,而刪除域剛好也是由五列組成。

但是,這樣觀察起來太費勁了,其實它也有互補的。請觀察白色單元格上,數字1的填數位置情況。白色單元格下,1的填數只有r3c67、r5c37和r9c36上可以填。這是可以的,在剛才我也是解釋過的,類比數組定義,就是一種特別的「數組」結構。

而此時,定義域就只能看成三列:c367。而刪除域則是三行:r359。此時發現,定義域和刪除域則和原來的情況「垂直」:原本定義域由多行構成,現在的定義域則由多列構成。

那規格呢?5 + 3 = 8,不是該是9嗎?那還差一點在哪裡去了呢?未塗色的單元格下,有確定值1,可以排除一個行列上填1的情況,因此規格一定會減少1。當然了,如果說有兩個確定值1,就能排除兩個1,以此類推。這樣就說得通了:5(原來規格)+3(互補標準魚的規格)+1(確定值排除)=9。


Part 3 級聯行列區塊/層疊行列區塊(Cascading Claiming)

接下來介紹一下一種新型結構。它在理論上是不存在的,因為全部可以被等效為其他技巧,但是在觀察之中,整體觀察有些時候比起技巧觀察時,會更為輕鬆一些。

如圖所示,我們約定,用符號/表示當前位置沒有某一個候選數a可以填的情況,符號x表示當前位置有候選數a,而符號*則是可以刪除填入候選數a的位置。

那麼,先不看紫色的*,先看藍色單元格上的*,它的排除效果是很明顯的:因為兩行有且僅有兩列可以填入候選數a,所以構成二鏈列,可以刪除兩列的其餘位置上的部分。

但是,紫色的*其實也是可以刪除的位置。因為我們發現,不論內部如何填數,在r2和r7下,最終都會有一格填入到標註為x的地方上,而恰好,它們還恰好分屬兩個宮內,這樣一來,b2和b8里也一定會有候選數a,存在於x之上。

但是呢,它也能反過來看。即先看區塊,後看二鏈列刪數。先發現r2上形成候選數a的區塊,對b2進行排除;同理r7也含有一個候選數a的區塊,能對b8刪數。然後發現,是個二鏈列,然後再刪二鏈列的數。

那麼,其實怎麼看都是可以的。所以它既可以被稱為二鏈列,又可以被稱為一種特別的複合區塊。理論習慣將其看成整體,所以由於複合區塊最終依然能夠被拆解為多個區塊的刪除,所以它更偏向於是一種二鏈列。不過在實戰之中,這樣的結構有時候會被等效為一個行列區塊,有時候又可以直接被等效為一個行列排除。當你在觀察的過程之中,發現困難了,這樣的結構就很有效地幫助到您。其實,行列排除和行列區塊都是稍微難觀察一些的技巧,所以使用這樣的方式,可以提高觀察效率。

另外,這個結構由於使用了兩個方面來考慮技巧,所以整體結構稱為級聯行列區塊層疊行列區塊(Cascading Claiming);而剛才說到,它還是一種特別的二鏈列,所以區塊也能該叫二鏈列,即級聯二鏈列層疊二鏈列(Cascading X-Wing)。

最後,上述採用符號標註的、想表示定義域和刪除域的示意圖,稱為魚圖(Fish Diagram)。目前約定以下標註方式:

  • / 表示不可以填入某候選數a的位置。
  • x 表示可以填入某候選數a的位置。
  • * 表示刪數。

另外,魚圖可以不為單元格塗背景色。


Part 4 標準魚的觀察

對於觀察來說,和排除完全一致,找到同一種數字,對於行列畫線,然後確定某些固定位置可填當前數字時,再去看是否可以構成標準魚結構了。


Part 5 總結

這一節是針對講到的技巧做的一個統一的難度歸納和理論分析。

  • 級聯二鏈列
    • 英文名:Cascading Claiming 或 Cascading X-Wing
    • 難度係數:無
    • 命名空間:無

使用到的術語:

  • 魚圖
    • 英文名:Fish Diagram
    • 解釋:針對魚結構的、只使用符號標記填數情況和刪數邏輯的示意圖。
  • 級聯/層疊
    • 英文名:Cascade
    • 解釋:複合形成的結構,可以合併思考和理解,併產生新的刪數的一種現象。

推薦閱讀:

第12講:唯一矩形(拓展構型)
第9講:鰭
第20講:雙強鏈(多寶魚)
第22講:不規則Wing結構

TAG:數獨 |