數獨高級技巧(4):Fish

Fish 代表了一組工作原理相同的關於特定候選數的解題技巧。Fish “體型”從小到大包括 X-Wing、Swordfish、 Jellyfish (以及 Squirmbag、 Whale、Leviathan 可以轉換成前面的三種),衍生出來的還有 Fish Finned、Sashimi Fish,還有一個更高級的 Franken Fish。

X-Wing:若數字 X 在某兩行(列)中只能存在於相同的兩列(行),則這兩列(行)的其他格都不能有 X。


數獨高級技巧(4):Fish


數獨高級技巧(4):Fish

看上面兩張圖,如果用鏈來看的話,其實這是一個特殊的摩天樓的雙強鏈,綠色部分不能為 X,如果不用鏈,圖中 4 個 X,先假設任意一個 X 為真,是不是綠色部分都不能有 X。

來看兩個實例


數獨高級技巧(4):Fish

這個例子中 R2 和 R5 只有兩個 5,而且都在 C5 和 C8,根據剛才我們的理論,R4C5 的 5(紅色)可以刪除。

用這個例子,我再來假設一次,R2 和 R5 裡面的 5 至少有一個成立對吧,不然有一行沒有 5 就不符合數獨規則了。

  1. 如果 R2C5=5,那麼 R4C5 不能是 5
  2. 如果 R5C5=5,那麼 R4C5 不能是 5
  3. 如果 R5C8=5,那麼 R2C8 不能是 5,R2C5=5,回到 1
  4. 如果 R2C8=5,那麼 R5C8 不能是 5,R5C5=5,回到 2

R4C5 肯定不能是 5,假設 C5 或者 C8 還有 5 的話,一樣的原理。下面的例子我就不解釋這麼詳細了,這個還是很容易理解的。

再看一個例子

數獨高級技巧(4):Fish

C1 和 C5 都只有 2 個 1,而且在 R2 和 R5,那麼 R2 和 R5 其他的 1 都可以刪除了。

看了上面的圖和兩個例子,可以發現這個原理裡面候選數永遠是一個矩形,形成一個 X。你們在填完候選數後,如果發現一個候選數在某一行(列)只有兩個的時候,看看其他行(列)是不是有對應的候選數只有兩個,形成一個 X,找到了就可以刪數。

Swordfish:若數字 X 在某三行(列)中均只能存在於相同的三列(行),則這三列(行)的其他格都不能有 X。


數獨高級技巧(4):Fish


數獨高級技巧(4):Fish

看上面兩張圖,一個是標準的,一個是簡化變形的。

我先解釋一下第一張圖的原理,9 個 X 的候選數,無論那一個 X 成立,是不是還剩下 4 個,是一個剛講的 X-Wing 結構,再按照 X-Wing 的推論就出來了。

看一下簡化版本的,我們還是隨便一個 X 是真,是不是綠色的格子都不能為 X。

簡化版本有很多種變形,但必須要滿足那一行(列) X 的個數是 2-3,只有 1 個直接就能出來了,大於 3 個就不符合我們開始的定義了,所以X 的結構可以是 333 - 222 裡面的排列組合。

來看兩個實例


數獨高級技巧(4):Fish

候選數 2 在 R239 大於 2 小於 3 符合我們上面說的定義,而且在 C158 有關聯,所以 C158 其他的 2 可以刪除,圖中紅色部分。我們一般把 R239 叫做 Base,C158 叫做 Cover。


數獨高級技巧(4):Fish

候選數 4 Base 在 R247,Cover 是 235,所以 Cover 上的其他 4 都可以刪除。

Jellyfish:若數字 X 在某四行(列)中均只能存在於相同的四列(行),則這四列(行)的其他格都不能有 X。

原理就不推論了,你們應該能自己推出來。

直接看例子


數獨高級技巧(4):Fish

候選數 7 Base R3467,Cover C1259,刪除 Cover 的其他 7(紅色)


數獨高級技巧(4):Fish

候選數 7 Base R1367,Cover C2589,刪除 Cover 的其他 7(紅色)

怎麼找 Fish 結構

在填候選數的時候,你們可以看一下行(列)中某個數字的個數,比較容易的還是 X-Wing 和 SwordFish,JellyFish 還是挺難發現的,至少我只用到過一兩次。如果填候選數沒有發現,我一般會在填完候選數後,截一張圖,把還剩中等數量的候選數(3-5)個數字沒填的那種畫一次圈圈,畫完後比較容易看到(推薦 iPad 的那支筆,真的優秀)

高級 Fish(變異的 Fish)

魚是一種很神奇的技巧,但是往往在出現的時候,並不是那麼頻繁,而往往會多出來一點點。這也就產生了兩種變異類型。

Fish Finned

我們用例子直接說明


數獨高級技巧(4):Fish

上圖中候選數 9 比 X-Wing 結構多出來一點東西,看藍色的 9,這個時候 Fish 怎麼用呢?

我們還是來做推論

R2C1 = 9 那麼 R3C3 的 9 可以刪除

R2C1 != 9 那麼 綠色的 9 還是一個標準的 X-Wing,R3C3 的 9 也可以刪除

多出來的這個 9,叫做 Finned,中文一般叫做魚鰭,他的作用是把 Fish 的刪除範圍限定在來 Finned 的宮內,所以上圖這個結構,我們只能刪除 R13C3 的 9,R1C3 已經有數字了,只有 R3C3 可以刪除。

再看一個 SwordFish 的例子


數獨高級技巧(4):Fish

藍色的 7 是 Finned,讓這個 SwordFish 的刪除範圍限定在 B3

再來一個 JellyFish


數獨高級技巧(4):Fish

看魚鰭和可以刪除的部分

Sashimi Fish

剛我們說了Fish Finned,那這種結構是不是還能簡化呢?當然是可以的,但這個魚的結構就更加奇怪了,而且變化多端,先看一個標準版本


數獨高級技巧(4):Fish

如盤面所示。這裡有一個類似於 Fish Finned 的形狀:Base 為 C28,Finned 位於 R4C8。但是又有點不一樣的地方,在 Finned 宮內 X-Wing 的那隻“腿”不見了,不過沒關係。

根據 Finned 的推理方法,要麼 Finned 成立,要麼 X-Wing 成立。

現在 X-Wing 少了一個數字,我們來看看怎麼推論。

假設 Finned R4C8 != 7,那麼 R8C8 = 7,R6C2 = 7,R6C7 != 7

假設 Finned R4C8 = 7,那麼 R6C7 != 7

所以紅色的 7 一定可以刪除

這種結構就是 Sashimi Fish

再看一個例子


數獨高級技巧(4):Fish

R23C6 的 9 作為一個 Group 的 Finned,大家可以想一想。

在 X-Wing 的結構裡面,無論是 Fish Finned 還是 Sashimi Fish 其實都可以用雙強鏈的摩天樓來刪數字,看過前面雙強鏈的朋友可能覺得用摩天樓更加簡單,但到 3 個數或者 4 個數字的時候,摩天樓就很難用上了。

來看 3 個數字的


數獨高級技巧(4):Fish

還是一樣的推論,Finned 成立或者 SwordFish 成立,Finned 只是把刪除範圍限定到了 Finned 所在的宮內的 Cover 集

看看 4 個數字


數獨高級技巧(4):Fish

Base R1469{8},Cover C1289{8},Finned R9C3{8},刪除集限定在 B7 中的 Cover 集,也就是 R78C12


Franken Fish

前面我們講了魚的帶鰭變形,其實它的形狀也是可以變異的。

來看一張圖


數獨高級技巧(4):Fish

這張圖還是一個標準的 SwordFish,只是移動了 SwordFish 的 Cover 集,最右邊兩列在同一個宮裡面

我們再改動一下,變成下圖


數獨高級技巧(4):Fish

綠色部分是不是還能繼續刪除呢?

我們還是繼續假設

無論 B3 中的 C7 任意一個 X 為真,還是 B3 中的 C8 任意一個 X 為真,還是 那麼 R5 和 R8 剩下的 4 個 X 還是一個標準的 X-Wing,綠色部分都能刪除。

B3 中 C7 和 C8 6 個格子必須要有 X,要沒有那麼 B3 就沒有 X 了,不符合數獨規則。

所以綠色部分的 X 還是可以刪除的。

當然,這個結構也是可以簡化的,最簡形式如下圖


數獨高級技巧(4):Fish

這個的原理我相信你們自己也可以推出來的

還是看例子吧


數獨高級技巧(4):Fish

Base = R34B9{1} Cover = C489{1},可以刪除 C489 其他的 1

最後還有兩個例子,大家自己揣摩一下。


數獨高級技巧(4):Fish


數獨高級技巧(4):Fish

最後廣告時間

如果你是 iOS 系統,可以下載我做的 App 來訓練這些技巧,專家難度一定會讓你用上這些高級技巧的

Appstore 搜索 禪數獨 下載


數獨高級技巧(4):Fish


分享到:


相關文章: