劍魚(Swordfish)是一個進階數獨技巧,它把X翼從兩橫列擴展到三橫列。規則是這樣的:一個數字在三橫列裡每橫列都只有兩個或三個可填的格子,而且這些格子全都在同樣的三直行裡,那麼就可以把這個數字從這三直行的其他所有格子中排除。
劍魚屬於一個叫「魚」的結構家族。X翼用兩橫列兩直行,劍魚用三橫列三直行,水母 (英文)(Jellyfish)用四橫列四直行。結構越大,越少見,也越難看出來。本文先說明規則,再在一整塊棋盤上逐格示範。
劍魚的規則
劍魚需要滿足三個條件:
- 選一個數字,比如 2。
- 找三橫列,這個數字在每一橫列裡都只有兩個或三個可填的格子。
- 檢查所有這些格子所在的直行,合起來必須恰好是三直行。
這三橫列裡每一橫列都要出現一次這個數字。在這些橫列裡,這個數字只可能出現在這三直行,也就是三個數字要填進三直行,其中任意兩個不能在同一直行,所以三直行各得到恰好一個。
這就是說,這三直行的這個數字已經在這三橫列裡了。這三直行的其他格子都不可能再填它,所以可以把它從這些格子裡全部排除。
一橫列不必在三直行裡都有這個數字,某一橫列可以只在其中兩直行有。關鍵是總數:三橫列所有的格子合起來,必須恰好落在三直行裡。
一句話記住規則
三橫列,一個數字,同樣的三直行:把這個數字從這三直行的其餘格子中排除。
例題,一步一步看
在這個盤面裡,簡單的步驟都已經走完,沒有唯一數可填。每個空格裡都標出了候選數,也就是那裡仍然可能填的數字。
- 5 提示數
- 5 已填好
- 5 新填的數字
- 5 構成結構的候選數
- 5 可排除的候選數
找出結構
只看數字 2,一橫列一橫列地數它的格子。有三橫列正好配得上:
- 第 2 橫列: 2 只可以填在 R2C1 和 R2C5。
- 第 3 橫列: 2 只可以填在 R3C5 和 R3C8。
- 第 9 橫列: 2 只可以填在 R9C1 和 R9C8。
這六個格子只用了三直行:第 1 直行、第 5 直行和第 8 直行。這就是數字 2 的劍魚。每一橫列裡這個數字只在三直行中的兩直行出現,而且每一橫列缺的是不同的一直行。結構仍然是完整的,因為三橫列合起來恰好用了三直行。
檢查兩種可能
- 情形 A: 第 2 橫列的 2 在 R2C1。那麼第 9 橫列的 2 不能在第 1 直行,只能在 R9C8。這樣第 3 橫列的 2 不能在第 8 直行,只能在 R3C5。
- 情形 B: 第 2 橫列的 2 在 R2C5。那麼第 3 橫列的 2 在 R3C8,第 9 橫列的 2 在 R9C1。
兩種情形裡,第 1 直行、第 5 直行和第 8 直行都各從這個結構中得到一個 2。所以這三直行的其他格子都不可能是 2。把 2 從第 1 直行的 R7C1 和第 8 直行的 R6C8 排除。第 5 直行沒有其他帶候選數 2 的格子,所以那裡沒有變化。
接下來怎麼走
劍魚本身不會填入數字,但它排除的候選數常常帶來下一步。R6C8 原來有兩個候選數,2 和 8。劍魚排除了 2,只剩 8,這就是一個唯一候選數:在 R6C8 填入 8。
試試 Sudoku Royale
你熟悉的經典數獨,沒有廣告,沒有彈窗,沒有雜亂。每天一道全新的每日挑戰,不計時的無限練習,還有技巧特訓。想要刺激時,可以在同一塊棋盤上和 2 至 18 名玩家競速。
免費下載 Sudoku Royale(iOS)按直行找的劍魚
把橫列和直行對調,劍魚同樣成立。如果一個數字在三直行裡每直行都只有兩個或三個可填的格子,而且這些格子全都在同樣的三橫列裡,就可以把這個數字從這三橫列的其他所有格子中排除。
邏輯完全一樣,只是轉了 90 度。找到結構的那些線保留候選數,要排除的是與它們交叉的線上的候選數。兩個方向都要查,因為有的題目只出現其中一種。
怎麼找劍魚
劍魚比X翼更難找,因為要對上三橫列,而不是兩橫列。你需要寫全筆記 (英文),然後按下面的順序找:
- 先試更簡單的技巧。 唯一數、數對、指向數對和X翼更容易找到,也能解決大多數格子。
- 一次只看一個數字。 先挑棋盤上剩餘候選數少的數字,候選數越少,要檢查的橫列越少。
- 記下有用的橫列。 對每一橫列,數一數這個數字可填的格子。留下有兩個或三個格子的橫列,並記住它們的直行。
- 三橫列組合。 如果其中三橫列合起來恰好用了三直行,就有了劍魚。找不到的話,用直行再找一遍。
- 排除候選數。 把這個數字從三條交叉線的其他格子裡排除,然後重新找隱性唯一數和唯一候選數。
常見錯誤
- 是四直行而不是三直行。 如果三橫列的格子用了四直行,這個結構就不是劍魚,劍魚的規則什麼也排除不了。排除候選數之前請再數一遍直行數。
- 排除的方向反了。 在橫列裡找到的結構,要在直行裡排除候選數。那三橫列保留全部候選數。
- 筆記不完整。 少寫一個候選數,就會讓一橫列看起來正好落在這三直行裡,其實它在三直行之外還有一個格子。
- 以為每次都能排除到候選數。 只有這三直行裡還有其他帶這個數字的格子,劍魚才有用。例題裡第 5 直行就沒有。
什麼時候找劍魚,以及接下來學什麼
劍魚比X翼少見得多,因為要同時對上三橫列三直行。很多困難題目根本用不到它。只有在困難或專家級題目裡卡住,而更簡單的技巧都沒有進展時再找它。真的需要它時,它排除的候選數往往直接給出下一個數字,就像例題那樣。
在 Dojo 裡練習劍魚
Sudoku Royale 的 Dojo 為這項技巧準備了簡短的課程和特訓:一盤接一盤,下一步正是用到它。你的紀錄是連續答對的最快一次,還能和其他玩家比一比。在 iPhone 上開啟劍魚特訓,或閱讀Dojo 怎麼玩 (英文)。
免費下載 Sudoku Royale(iOS)學完劍魚之後,可以學XY翼,它把三個各有兩個候選數的格子連起來,還有簡單著色,它沿著一串格子追蹤同一個數字。帶鰭X翼 (英文)告訴你,當一條魚多出一個格子時,還能排除什麼。想了解全貌,請看數獨技巧完整列表 (英文)。
常見問題
數獨裡的劍魚是什麼?
劍魚是針對一個數字的結構。這個數字在三橫列裡每橫列都只有兩個或三個可填的格子,而且這些格子全都在同樣的三直行裡。這時可以把這個數字從這三直行的其他所有格子中排除。把橫列和直行對調,規則同樣成立。
劍魚和X翼有什麼差別?
X翼用兩橫列兩直行,劍魚用三橫列三直行。邏輯是一樣的,但劍魚更少見,也更難看出來。
三橫列裡每一橫列都要在三直行裡都有這個數字嗎?
不用。每一橫列只需要在這三直行中的兩直行或三直行裡有這個數字。規則只要求三橫列所有的格子合起來恰好用了三直行。
劍魚會排除哪些候選數?
它從三條交叉線上、結構以外的格子裡排除這個數字。如果結構是在三橫列裡找到的,就從那三直行的其他格子裡排除;如果是在三直行裡找到的,就從那三橫列的其他格子裡排除。
劍魚這個結構常見嗎?
比X翼少見得多。簡單和中等的題目幾乎用不到,只有一部分困難和專家級題目需要它。