標籤:

第9講:鰭

今天來學習標準魚的拓展版本。

之前學到了一種技巧,是可以被看作二維同數數組的。今天這個內容呢,可能就不是那麼輕鬆了,它是「差一點點」的標準魚結構。

整節篇幅較長,雖然看起來容易,但是理解起來不容易,所以建議分幾次理解本節內容。

以及,封面背景也換配色了。這是為了區別難度的。也就是告訴你,前8講是理論上比較基礎的內容,從這一講開始,就會加大難度了。不論是原理,還是邏輯,都會有比基礎內容稍微困難的地方。做好準備吧!

稍微劇透一下,這個教程裡面,大致為所有內容分了4個難度。看圖片的顏色就清楚啦!

Part 1 鰭魚(Finned Fish)

單鰭二鏈列(Single-finned X-Wing)

如圖所示,我們發現,對於c67來說,能夠填入7的位置,只有五個單元格:r1c6和r24c67。其中,我們當r1c6不存在,那麼剩餘結構是什麼?那肯定是我們最為完美的二鏈列結構。但是r1c6的存在,使得現在不能完美地運用了。但是,我們可以這麼去想:

  • 當r1c6=7時,r1c6的相關格(所在區域下的所有不是本身的單元格,r1、c6和b2內非r1c6的其餘單元格)都不可以填7,因為但凡相關格的其一填入7,都會和r1c6它們共同所在的區域下出現重複數字;
  • 當r1c6<>7時,二鏈列結構形成,所以刪數應為r24c1234589。

只可能有上述兩種情況的出現,但我們可以發現到的是,兩種情況下,都可以刪除掉r2c45(7),所以,r2c45<>7。

其中的r1c6(7),我們有專門的術語去描述它——(fin)。鰭在魚的體系之中,按結構分一共分三種:外鰭(exofin)、內鰭(endofin)和自噬鰭(cannibal),而根據距離又分為遠程鰭(Remote Fin)和臨近鰭(Local Fin)兩種,而今天這一講的所有鰭,全部都是外鰭、臨近鰭。至於他們的定義,為了理解輕鬆,所以都不作介紹,後面會對鰭的分類和更深難的技巧和結構上,作出更為嚴謹的描述,而此處均稱為鰭,而英文名也都直接稱為fin。

這樣的結構則被稱為鰭魚(Finned Fish),因為結構是基於標準魚的,所以全稱「鰭標準魚」,而不造成歧義時,「標準」二字也可以省略。

注意,英文名「鰭魚」之中的「鰭」含義為「帶鰭的」,所以採用分詞性形容詞形式。如果寫成「Fin fish」,歪果仁會認為這是兩個描述內容不一致的術語,而不是一個技巧,並且語法和說法也不符合英文思維。

那麼,如何能快速觀察和推斷到刪數情況呢?你可以發現,r1c6的相關格組涉及三個區域:r1、c6、b2。r1和c6下,都不會和它不存在所形成的二鏈列的刪除的單元格有任何的交集,而只有b2才有交集。所以,鰭和剩餘魚結構的刪數交集只能是宮內。

那麼,鰭可以在一個技巧下存在幾個呢?因為刪除交集只能是宮內,所以最多也只能有2個。

雙鰭二鏈列(Double-finned X-Wing)

如圖所示,如果黃色的兩個候選數r6c23(7)全部從盤面上消失的話,那麼在r69上將會形成一個二鏈列,刪數單元格則為r1234578c16。那麼,但凡鰭的其中哪一個正確,都將破壞二鏈列結構。所以我們可以分為三種情況:

  • 鰭都錯:二鏈列直接成立,刪r1234578c16;
  • r6c2=9:刪除r6c2相關格組上的候選數7;
  • r6c3=9:刪除r6c3相關格組上的候選數7。

那麼,不論最終哪種情況正確,r45c1(7)都是可以刪除的(上述所有情況都包含了r45c1(7)),所以r45c1<>7。

以上是兩種鰭魚結構。那麼,階數更大的結構就不推理了哈,您可以自己嘗試去理解一下。

鰭三鏈列(Finned Swordfish)


Part 2 退化魚(Sashimi Fish)

這一節講一下更為特別的結構。那麼如果您知道後面的技巧(比如鏈)的話,請暫時忘記它,否則將引起混淆。

單鰭退化二鏈列(Single-finned Sashimi X-Wing)

如圖所示,我們發現,r6c8按照最初的結構,應該是含有候選數7的,不過現在它被提示數佔據了,結構缺了一個角。那它還能推理嗎?

按照最初的分析方式和模式,我們發現,c8存在完全不同於結構行列的額外的位置:r4c8。如果補齊r6c8,r4c8則應該為鰭。於是按照魚的分析方式和思維來觀察這樣的結構:

  • 如果r4c8=7,則可以刪除魚本擁有的刪除域和b6的交集單元格(r6c79)。
  • 如果r4c8<>7,缺了一個角的二鏈列成立,但能不能刪數呢?

r4c8<>7時,感覺不難繼續推導了,因為缺了一個角的二鏈列,此時按照之前二鏈列的分析方式,只能有兩種填數情況:要麼r6c2和r8c8都填7,要麼r8c2單獨填7。單獨填7意味著它只可能排除掉原本應有的刪除域的其中一行(r8),而r6它是無能為力的。但是,你會發現一點神奇的現象:當r4c8<>7時,r8c8=7,因為此時c8隻有兩處可填7的地方。這也就是說,當r4c8<>7時,直接自動就進入了r6c2和r8c8都填7的情況(r6c2填7你可以順次進行推導得到,這是一定的,因為這樣的推導過程,和之前標準魚的假設推導過程類似)。這也就是在說,r4c8不填7時,二鏈列的刪數所在區域一定是兩行(r68),而不可能只有一行(r8)。

所以,r4c8=7時和r4c8<>7時,都能刪除掉r6c79(7),所以r6c79<>7。

這個技巧理解起來有一絲難度,不過我們可以得到一點:鰭的存在可以使得原本應完美的結構再次缺失一個角。這個缺失的位置必須處於鰭所在的宮。比如這裡缺失的是r6c8(7),和鰭r4c8(7)同宮。

結構的特殊性就在於,雖然在推導過程之中,顯然r8c2是可以單獨填7的,但是當鰭不成立時,不可能使得它單獨成立。

思考:什麼時候可以使得r8c2單獨填7?

最後,如果不看鰭r4c8(7),剩餘的魚結構稱為退化魚(Sashimi Fish),如果沒有鰭的支撐,退化魚本身就可以直接產生出數效果。

對於術語Sashimi,有些人認為,退化魚結構因為結構特殊,必須依靠鰭生存,所以名字里必須添加上Finned一詞,即Finned Sashimi Fish;另一些人認為,退化魚結構本身是一種特別的結構,則完全不需要添加Finned一詞。所以它的英文名可以叫Finned Sashimi Fish,也可以叫Sashimi Fish。我個人習慣是,當不產生歧義時,不加Finned一詞。

那麼,更為複雜的結構如下:

雙鰭退化二鏈列(Double-finned Sashimi X-Wing)

原定思路也是一樣,分情況討論填數。當然了,發現這種技巧一多起來了的話,就一眼找到刪數了。再放一個更複雜的結構上來。

退化三鏈列(Sashimi Swordfish)

原本結構應該是包含r1c2(5)的,但是被提示數佔了。然後我們發現,r2c2(5)便自動變為鰭結構,因為它不在原本三鏈列應該在的位置上。

進一步推理,當鰭正確時,可以刪除它的相關格組內的所有5(確切一些的話呢,根據最開始說到「鰭刪的位置一定是和刪除域產生宮內交集的」,所以應該為b1);如果鰭錯誤時,刪除域照樣成立(之前的結論,鰭錯誤不會使得某些位置單獨存在,而依然會使得刪除域完整存在)。

所以不論鰭的真假,刪數一定是r1c13(5)。這便是這個魚的推導方式。

再來個更複雜點的結構,您可以自己嘗試推理一下。

退化四鏈列(Sashimi Jellyfish)


Part 3 共軛魚(Siamese Fish)

接下來的魚結構,則是複合兩種帶鰭的魚結構形成的新的結構。

共軛二鏈列(Siamese Sashimi X-Wing)

如圖所示,我們拿出其中任意一個橙色候選數,給它改為綠色候選數,你就會發現,它形成了一個退化魚結構。比如我們拿出r2c6(9)看成鰭,那麼剩下的三個候選數r2c3(9)和r6c34(9)就必然可以構成一個退化魚,然後帶r2c6(9)的鰭,可以直接刪除r13c4(9)。具體推導原因嘛,我這裡就不過多闡述了(分鰭存在和不存在兩種情況討論,鰭不存在時候,依然可以保證刪除域完整);那麼,換過來看也一樣:把r6c4(9)看成鰭,然後剩下三個候選數r2c36(9)和r6c3(9)則可以形成退化魚,然後帶r6c4(9)這個鰭,得到刪數。

所以,這個魚的刪數一共有兩處:r13c4(9)和r45c6(9)。這種結構由於由兩隻退化魚合併形成,並且結構的特殊性質,稱為共軛魚(Siamese Fish)結構。至於這裡的「共軛」一詞,就不要糾結它和數學到底是否相通了,這裡表示的是結構相似的兩個不同的退化魚結構。

那麼,複雜一些的結構如下:

共軛退化四鏈列(Siamese Sashimi Jellyfish)

四鰭共軛退化四鏈列(Quad-Finned Siamese Sashimi Jellyfish)

有沒有化學的系統命名法風範呢?好了,這一節就講這麼多吧。至於Siamese結構呢,如果有邏輯層面不懂的小夥伴,可以下發提問和留言,都會做出解答!


Part 4 總結

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

  • 鰭二鏈列
    • 英文名:Finned X-Wing
    • 難度係數:3.4
    • 命名空間:Tech.Fish.Basic.Double.Finned
  • 鰭三鏈列
    • 英文名:Finned Swordfish
    • 難度係數:4.0
    • 命名空間:Tech.Fish.Basic.Triple.Finned
  • 鰭四鏈列
    • 英文名:Finned Jellyfish
    • 難度係數:5.4
    • 命名空間:Tech.Fish.Basic.Quadruple.Finned
  • 退化二鏈列
    • 英文名:Sashimi X-Wing
    • 難度係數:3.5
    • 命名空間:Tech.Fish.Basic.Double.Sashimi
  • 退化三鏈列
    • 英文名:Sashimi Swordfish
    • 難度係數:4.2
    • 命名空間:Tech.Fish.Basic.Triple.Sashimi
  • 退化四鏈列
    • 英文名:Sashimi Jellyfish
    • 難度係數:5.6
    • 命名空間:Tech.Fish.Basic.Quadruple.Sashimi
  • 共軛二鏈列
    • 英文名:Siamese Sashimi X-Wing
  • 共軛三鏈列
    • 英文名:Siamese Sashimi Swordfish
  • 共軛四鏈列
    • 英文名:Siamese Sashimi Jellyfish

使用到的術語:

    • 英文名:Fin
    • 解釋:影響魚結構推導的、存在於定義域上的候選數。有多種分類。
  • 退化
    • 英文名:Degenerated
    • 解釋:去掉某處魚結構候選數,可以直接產生出數效果的情況。退化一詞單用下則使用「degenerated」表示;而退化魚結構則使用「Sashimi Fish」表示。
  • 共軛(魚內術語)
    • 英文名:Conjugate in Fish
    • 解釋:由兩個帶鰭的魚結構複合構成,魚身完全一致,但鰭不同刪數不同的特別情況。共軛一詞單用下則使用「conjugate」表示;而共軛魚則使用「Siamese Fish」表示。

推薦閱讀:

第20講:雙強鏈(多寶魚)
第24講:區塊組鏈
第15講:全雙值格致死解法
第21講:同數鏈和異數鏈常見構型

TAG:數獨 |