Platon Sudoku · 數獨學習
強制鏈 (Forcing Chain) · 分步講解
對候選真假或區域中所有位置作窮盡劃分,每個分支沿一條線性蘊含鏈推進。 執行每個有效分支共同得出的填數或排除。
本課程改編自 Platon Sudoku App 的教學內容。你可以在這裡讀完完整實例,再到應用程式中繼續學習和練習。
在 Google Play 查看 ↗辨認模式
對候選真假或區域中所有位置作窮盡劃分,每個分支沿一條線性蘊含鏈推進。
如何尋找
選定完整的真假或區域位置分支,逐條追蹤到經過驗證的後果。
可以得出甚麼
執行每個有效分支共同得出的填數或排除。
別看錯了
只證明一條分支不夠;起始分支必須覆蓋所有可能。
分步講解 · 雙分支
本例從已儲存的中途盤面開始,候選數包含先前邏輯排除的結果,並非剛剛自動產生的筆記。
藍色:推理依據。綠色:結論。劃線數字:排除的候選數。R1C1 表示第1列第1欄。
步驟 1 · 觀察位置
要證明的共同結果是 R1C2=7,用於分叉的開關是 R1C2=5。任一候選只有成立和不成立兩種狀態,所以這兩個分支覆蓋全部可能;若兩邊都得到共同結果,該結果就必然成立。
要證明的共同結果是 R1C2=7,用於分叉的開關是 R1C2=5。任一候選只有成立和不成立兩種狀態,所以這兩個分支覆蓋全部可能;若兩邊都得到共同結果,該結果就必然成立。步驟 2 · 推理過程
分支 1:假設 R1C2=5 成立。
分支 1:假設 R1C2=5 成立。步驟 3 · 推理過程
R1C2=5 已經成立,排除 R1C2=7。
R1C2=5 已經成立,排除 R1C2=7。步驟 4 · 撤回上一種矩形填法
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。步驟 5 · 推理過程
分支 2:假設 R1C2=5 不成立。
分支 2:假設 R1C2=5 不成立。步驟 6 · 推理過程
R1C2=5 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C5=5 被迫成立。
R1C2=5 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C5=5 被迫成立。步驟 7 · 推理過程
R1C5=5 已經成立,排除第 5 列中的 R2C5=5。
R1C5=5 已經成立,排除第 5 列中的 R2C5=5。步驟 8 · 推理過程
R2C5=5 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C8=5 被迫成立。
R2C5=5 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C8=5 被迫成立。步驟 9 · 推理過程
R2C8=5 已經成立,排除 R2C8=9。
R2C8=5 已經成立,排除 R2C8=9。步驟 10 · 推理過程
R2C8=9 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C4=9 被迫成立。
R2C8=9 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C4=9 被迫成立。步驟 11 · 推理過程
R2C4=9 已經成立,排除第 4 列中的 R1C4=9。
R2C4=9 已經成立,排除第 4 列中的 R1C4=9。步驟 12 · 推理過程
R1C4=9 不成立。R1C4 現在只剩 R1C4=7,因此它必須成立。
R1C4=9 不成立。R1C4 現在只剩 R1C4=7,因此它必須成立。步驟 13 · 推理過程
R1C4=7 已經成立,排除第 1 行中的 R1C2=7。
R1C4=7 已經成立,排除第 1 行中的 R1C2=7。步驟 14 · 推理過程
所有可能分支都得到同一事實:R1C2=7 不成立。撤回全部假設後,這一事實仍然必然成立。
所有可能分支都得到同一事實:R1C2=7 不成立。撤回全部假設後,這一事實仍然必然成立。步驟 15 · 結論
已驗證的結論是 R1C2=7 不成立。所有臨時假設均已撤回。
已驗證的結論是 R1C2=7 不成立。所有臨時假設均已撤回。可以得出甚麼
已驗證的結論是 R1C2=7 不成立。所有臨時假設均已撤回。
強制鏈 (Forcing Chain) · 執行每個有效分支共同得出的填數或排除。分步講解 · 多分支
本例從已儲存的中途盤面開始,候選數包含先前邏輯排除的結果,並非剛剛自動產生的筆記。
藍色:推理依據。綠色:結論。劃線數字:排除的候選數。R1C1 表示第1列第1欄。
步驟 1 · 觀察位置
根候選 R2C4=2, R2C4=3, R2C4=6, R2C4=7 窮盡了R2C4中的全部可能。分別沿每個根候選的線性蘊含鏈推進;若每條鏈都得到 R2C6=3,該結果就必然成立。根分支超過兩個本身並不會把它變成強制網。
根候選 R2C4=2, R2C4=3, R2C4=6, R2C4=7 窮盡了R2C4中的全部可能。分別沿每個根候選的線性蘊含鏈推進;若每條鏈都得到 R2C6=3,該結果就必然成立。根分支超過兩個本身並不會把它變成強制網。步驟 2 · 推理過程
分支 1:假設 R2C4=2 成立。
分支 1:假設 R2C4=2 成立。步驟 3 · 推理過程
R2C4=2 已經成立,排除 R2C4=3。
R2C4=2 已經成立,排除 R2C4=3。步驟 4 · 推理過程
R2C4=3 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C6=3 被迫成立。
R2C4=3 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C6=3 被迫成立。步驟 5 · 撤回上一種矩形填法
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。步驟 6 · 推理過程
分支 2:假設 R2C4=3 成立。
分支 2:假設 R2C4=3 成立。步驟 7 · 推理過程
R2C4=3 已經成立,排除 R2C4=6。
R2C4=3 已經成立,排除 R2C4=6。步驟 8 · 推理過程
R2C4=6 不成立。這兩端合起來包含第 2 宮中的全部剩餘選項,因此 R1C5=6 被迫成立。
R2C4=6 不成立。這兩端合起來包含第 2 宮中的全部剩餘選項,因此 R1C5=6 被迫成立。步驟 9 · 推理過程
R1C5=6 已經成立,排除第 5 列中的 R4C5=6。
R1C5=6 已經成立,排除第 5 列中的 R4C5=6。步驟 10 · 推理過程
R4C5=6 不成立。R4C5 現在只剩 R4C5=3,因此它必須成立。
R4C5=6 不成立。R4C5 現在只剩 R4C5=3,因此它必須成立。步驟 11 · 推理過程
R4C5=3 已經成立,排除第 5 宮中的 R6C6=3。
R4C5=3 已經成立,排除第 5 宮中的 R6C6=3。步驟 12 · 推理過程
R6C6=3 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R2C6=3 被迫成立。
R6C6=3 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R2C6=3 被迫成立。步驟 13 · 撤回上一種矩形填法
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。步驟 14 · 推理過程
分支 3:假設 R2C4=6 成立。
分支 3:假設 R2C4=6 成立。步驟 15 · 推理過程
R2C4=6 已經成立,排除 R2C4=3。
R2C4=6 已經成立,排除 R2C4=3。步驟 16 · 推理過程
R2C4=3 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C6=3 被迫成立。
R2C4=3 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C6=3 被迫成立。步驟 17 · 撤回上一種矩形填法
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。步驟 18 · 推理過程
分支 4:假設 R2C4=7 成立。
分支 4:假設 R2C4=7 成立。步驟 19 · 推理過程
R2C4=7 已經成立,排除 R2C4=3。
R2C4=7 已經成立,排除 R2C4=3。步驟 20 · 推理過程
R2C4=3 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C6=3 被迫成立。
R2C4=3 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C6=3 被迫成立。步驟 21 · 推理過程
所有可能分支都得到同一事實:R2C6=3 成立。撤回全部假設後,這一事實仍然必然成立。
所有可能分支都得到同一事實:R2C6=3 成立。撤回全部假設後,這一事實仍然必然成立。步驟 22 · 結論
已驗證的結論是 R2C6=3 成立。所有臨時假設均已撤回。
已驗證的結論是 R2C6=3 成立。所有臨時假設均已撤回。可以得出甚麼
已驗證的結論是 R2C6=3 成立。所有臨時假設均已撤回。
強制鏈 (Forcing Chain) · 執行每個有效分支共同得出的填數或排除。