準備好了嗎?

開始玩數獨!

數獨解法:一步一步教學

閱讀約 1 分鐘

**要解數獨,就重複一個循環:掃描只有一個位置可放的數字,把它填進去,再掃描一次。**掃描找不到東西時,就在每個空格寫出候選數,找數對,再找宮內指向數對。這份指南寫給已經知道數獨規則、想要一套永遠能告訴自己下一步該做什麼的方法的新手。下面先用 6 個步驟說明方法,再一步步解開一道真實的簡單題。

6 個步驟的方法

  1. **掃描宮,找隱性唯一數。**挑最滿的宮,列出它缺少的數字,對每個數字找出它還能放的格子。只剩一格,數字就填在那裡。
  2. **掃描格子,找唯一候選數。**一個格子的列、行和宮已經有 8 個不同的數字,就填第 9 個。
  3. **每填一個就重新掃描。**新填的數字會封住其他 20 個格子裡的同一個數字,所以下一個唯一數通常就在它旁邊。
  4. **卡住了?寫筆記。**在每個空格以小字記下所有合法的數字,也就是候選數。
  5. **找數對。**同一個區域內,有兩個格子共用相同的兩個候選數,而且沒有別的,就可以把這兩個數字從該區域其餘格子中劃掉。
  6. **找宮內指向數對。**宮內某個數字只限於一條線上,就可以把它從那條線的其餘部分劃掉。任何排除都可能產生新的唯一數,所以回到步驟 1。

清單裡沒有猜測。好題目中的每一格都能證明出來。

實際範例:我們題庫中的一道簡單題

這是我們自己題庫中的一道經典 9x9 簡單題。我們用來評級題目的解題程式 Sudoku Explainer 給它 1.2(簡單範圍是 1.0 到 1.9)。它有 36 個題目數字,引擎用 45 步解完,每一步都是隱性唯一數。列從上往下命名為 A 到 J(沒有 I),行從左往右是 1 到 9,所以 B2 是第二列、第二行。

  1. 有 36 個題目數字的簡單題目。前 4 個唯一數都落在 B 列。

    依序為:B2 的 9、B4 的 6、B9 的 5,然後是 B3 的 8。

有 36 個題目數字的簡單題目。前 4 個唯一數都落在 B 列。 依序為:B2 的 9、B4 的 6、B9 的 5,然後是 B3 的 8。

盤面標出 B 列,並按引擎採用的順序為前 4 個填入編號:

  1. **B2 = 9。**第 1 宮(左上)缺少 4、7、8 和 9。9 不能放在 C1 或 C3,因為 C 列在 C4 已有 9。也不能放在 B3,因為第 3 行在 J3 已有 9。只剩 B2。
  2. **B4 = 6。**在第 2 宮(上中)中,6 在 A 列被 A2 的 6 擋住,在 C6 被第 6 行 E6 的 6 擋住。剩下 B4。
  3. **B9 = 5。**在第 3 宮(右上)中,5 在 A 列被 A3 的 5 擋住,在 C 列被 C5 的 5 擋住。只有 B9 能放。
  4. **B3 = 8。**B 列現在是 1、9、_、6、3、4、2、7、5。只缺 8,所以填在最後一個空格。這是橫跨整列的隱性唯一數,引擎也這樣稱呼它。

步驟 1 到 4,沒用任何筆記就解完了整個 B 列。簡單題就是這樣:題目數字夠密,掃描宮就會不斷產生可填的數字。引擎接下來填的是 C7 = 6、C8 = 3、A9 = 8、C6 = 8 和 D9 = 6,之後一路這樣做到最後。完成的盤面開頭是 365712498、198634275、427958631。

請注意,這個方法在這裡從來不需要什麼:數對、宮內指向數對,或任何猜測。靠掃描就能解,是因為這道題是簡單題。比較難的題目會走到掃描行不通的地步,那就是下一節的內容。

卡住時該怎麼辦

卡住的意思是:把每個宮、每列、每行完整掃過一遍,都找不到唯一數。不要猜,改走這個循環:

  1. **寫筆記。**在每個空格填入它所有合法的候選數。這一次很慢,但能替整道題省下之後的時間。
  2. **檢查唯一候選數。**寫好候選數後,任何只顯示一個數字的格子就是可以填的。
  3. **找數對。**同一個區域中,有兩個格子擁有相同的兩個候選數:這兩個數字屬於這兩個格子,所以把它們從區域內其他格子中擦掉。細節,加上隱性版本與三數組,請見顯性數對與隱性數對。
  4. **找宮內指向數對。**如果某個數字在宮內的候選數全落在同一列或同一行,就把這個數字從該列或該行的其餘部分擦掉。反過來,一條線上的候選數全落在同一個宮,就是宮列排除法。
  5. **回到唯一數。**每次排除,都可能讓某格只剩一個候選數,或讓某個數字只剩一個位置。從上面方法的步驟 1 重新掃描。

如果你走完這個循環,盤面滿是候選數,卻找不到數對或宮內指向數對,那是題目超出你目前的工具箱,不是題目壞了。請先用新手技巧檢查你的筆記有沒有錯誤,因為漏掉的排除會藏起許多真正的唯一數。

什麼時候該升級難度

我們遊戲中的難度,是題目需要的最難技巧,由 Sudoku Explainer 衡量:簡單是 1.0 到 1.9,中等 2.0 到 2.9,困難 3.0 到 4.9,專家 5.0 到 6.9。符合以下情況就升級:

  • 你只用唯一數就能解完簡單題,不用筆記,也沒有錯誤。
  • 中等題現在已經成了例行公事,也就是你遇到卡關點,加上筆記,再用數對和宮內指向數對通過。
  • 你好奇下一個技巧,而不只是想把目前的技巧用得更快。

如果你還在猜,或同樣的技巧一直讓你失敗,就留在原地。在一個等級上的熟練,比跳到一個你還沒學會工具的等級更有價值。試試一道新的簡單題來檢驗自己,等上面的循環開始變成自動反應,中等等級就是下一步。