數獨遊戲

Sudoku Helper(單選填入+去除候選)

一.基礎強化

* 隱單(Hidden Single):在某一行/列/宮,某數字只有一個候選格 → 高亮/自動填。

例:假設某一行/列/宮尚未填入的空格裡面候選數字總共有30個,但是只有一個是數字沒有重複, 那麼那一格就該填入那個數字

*鎖定候選(Locked Candidates:指向/主張):某數在一個九宮內只出現在同一行(或同一列)→ 這行/列其他宮的該數可排除。

例: 在左上 3×3 宮(r1–r3 × c1–c3),數字 5 的候選**只**出現在 r2c1、r2c3(也就是**同一條行 r2**)。

→ 代表「這個宮裡的 5 一定在 r2 這一行」。在**整個 r2 的其它宮**(r2c4–c9)裡,**都可以刪掉候選 5**(稱為「指向/主張」或 pointing)。

二.中階

*裸對/裸三(Naked Pair/Triple):同一行/列/宮裡有 2/3 格的候選集合完全相同 → 其他格排除那些數。

例: r5c2 = {2,8},r5c7 = {2,8},而這一列其他格**都沒有 2 或 8** 以外的相同組合。

→ 兩格「裸露出」一樣的候選集合 {2,8},因此**該列其他格**都可以**刪掉 2 與 8**。

*隱對/隱三(Hidden Pair/Triple):某行/列/宮裡某兩/三個數只出現在 2/3 格 → 鎖定那幾格、剔除其餘候選。

例: 觀察這一列「數字 3」只出現在 r5c1、r5c6;「數字 9」也只出現在 r5c1、r5c6。

即使 r5c1 現在是 {3,9,6},r5c6 是 {1,3,9},

→ 因為 **3 與 9 只可能在這兩格**,所以把它們**縮成 {3,9}**,把其它候選(6、1)**刪掉**。

(差別在:隱對是從「數字的稀有度」出發,不要求兩格原本候選完全相同。)

三.進階

*X-Wing:某數在兩行各恰好落在同樣的兩列 → 其他行同列可排除該數。

例:* 在**兩條不同的行**(說 r2 與 r6),數字 7 的候選各自**只出現在同樣的兩個列**(比如 c3、c8)。

* 形成一個「長方形四角」的圖樣:r2c3、r2c8、r6c3、r6c8 是 7 的唯一位置。

* 那麼在**這兩個列**(c3、c8)的**其他行**裡,**都不能再放 7**(全部刪掉 7)。

*Swordfish:X-Wing 的三行/三列。

例:把 X-Wing 的「兩行兩列」擴展到「**三行三列**」。

**條件(以數字 4 為例):**

* 在**三條不同的行**(說 r1、r5、r9),數字 4 的候選**各自都只出現在同樣的三個列**(比如 c2、c6、c9)。

* 於是 4 的可能位置被「鎖」在 (r1,r5,r9)×(c2,c6,c9) 這個 3×3 的**列集合**交叉處。

* 在這三個列(c2、c6、c9)的**其他行**,**全部刪掉 4**。

具體例:

* Row 1:4 只在 c2、c6、c9

* Row 5:4 只在 c2、c6、c9

* Row 9:4 只在 c2、c6、c9

→ 在 Column 2、6、9 的其餘行(r2、r3、r4、r6、r7、r8)**移除候選 4**。

這個網誌中的熱門文章

Netflix 好萊塢電影排行榜

Netflix 熱門影集排行榜 2