繁體中文

Platon Sudoku · 數獨學習

Nice Loop / AIC · 分步講解

交替推理鏈以真實強弱關係連接候選狀態;開鏈與閉環的結論不同。 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。

本課程改編自 Platon Sudoku App 的教學內容。你可以在這裡讀完完整實例,再到應用程式中繼續學習和練習。

在 Google Play 查看

辨認模式

交替推理鏈以真實強弱關係連接候選狀態;開鏈與閉環的結論不同。

如何尋找

沿每段關係追蹤假設,記錄強弱轉換,並檢查鏈是否閉合或使端點矛盾。

可以得出甚麼

按已驗證的結果排除候選,或在相反狀態不可能時填入數字。

別看錯了

強鏈表示:一端為假,則另一端為真。弱鏈表示:一端為真,則另一端為假。不能倒轉這些推論;下結論前須核對端點關係。

分步講解 · 不連續·排除

本例從已儲存的中途盤面開始,候選數包含先前邏輯排除的結果,並非剛剛自動產生的筆記。

藍色:推理依據。綠色:結論。劃線數字:排除的候選數。R1C1 表示第1列第1欄。

步驟 1 · 先讀懂 AIC 交替鏈

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C6=1 成立”開始觀察 R1C6=1。在第 6 列, 第 2 行, 第 9 列, 第 7 行, 第 5 宮, 第 5 行, 第 1 列, 第 9 行, 第 8 列中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C6=1 成立”開始觀察 R1C6=1。在第 6 列, 第 2 行, 第 9 列, 第 7 行, 第 5 宮, 第 5 行, 第 1 列, 第 9 行, 第 8 列中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C6=1 成立”開始觀察 R1C6=1。在第 6 列, 第 2 行, 第 9 列, 第 7 行, 第 5 宮, 第 5 行, 第 1 列, 第 9 行, 第 8 列中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
步驟 2 · 假設:開始交替鏈

分支 1:假設 R1C6=1 成立。

分支 1:假設 R1C6=1 成立。
分支 1:假設 R1C6=1 成立。
步驟 3 · 弱關係:相連候選互斥

R1C6=1 已經成立,排除 R1C6=8。

R1C6=1 已經成立,排除 R1C6=8。
R1C6=1 已經成立,排除 R1C6=8。
步驟 4 · 強關係:另一端被迫成立

R1C6=8 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R2C6=8 被迫成立。

R1C6=8 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R2C6=8 被迫成立。
R1C6=8 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R2C6=8 被迫成立。
步驟 5 · 弱關係:相連候選互斥

R2C6=8 已經成立,排除 R2C6=6。

R2C6=8 已經成立,排除 R2C6=6。
R2C6=8 已經成立,排除 R2C6=6。
步驟 6 · 強關係:另一端被迫成立

R2C6=6 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C9=6 被迫成立。

R2C6=6 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C9=6 被迫成立。
R2C6=6 不成立。這兩端合起來包含第 2 行中的全部剩餘選項,因此 R2C9=6 被迫成立。
步驟 7 · 弱關係:相連候選互斥

R2C9=6 已經成立,排除 R2C9=3。

R2C9=6 已經成立,排除 R2C9=3。
R2C9=6 已經成立,排除 R2C9=3。
步驟 8 · 強關係:另一端被迫成立

R2C9=3 不成立。這兩端合起來包含第 9 列中的全部剩餘選項,因此 R7C9=3 被迫成立。

R2C9=3 不成立。這兩端合起來包含第 9 列中的全部剩餘選項,因此 R7C9=3 被迫成立。
R2C9=3 不成立。這兩端合起來包含第 9 列中的全部剩餘選項,因此 R7C9=3 被迫成立。
步驟 9 · 弱關係:相連候選互斥

R7C9=3 已經成立,排除 R7C6=3。

R7C9=3 已經成立,排除 R7C6=3。
R7C9=3 已經成立,排除 R7C6=3。
步驟 10 · 強關係:另一端被迫成立

R7C6=3 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R6C6=3 被迫成立。

R7C6=3 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R6C6=3 被迫成立。
R7C6=3 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R6C6=3 被迫成立。
步驟 11 · 弱關係:相連候選互斥

R6C6=3 已經成立,排除 R5C4=3。

R6C6=3 已經成立,排除 R5C4=3。
R6C6=3 已經成立,排除 R5C4=3。
步驟 12 · 強關係:另一端被迫成立

R5C4=3 不成立。這兩端合起來包含第 5 行中的全部剩餘選項,因此 R5C1=3 被迫成立。

R5C4=3 不成立。這兩端合起來包含第 5 行中的全部剩餘選項,因此 R5C1=3 被迫成立。
R5C4=3 不成立。這兩端合起來包含第 5 行中的全部剩餘選項,因此 R5C1=3 被迫成立。
步驟 13 · 弱關係:相連候選互斥

R5C1=3 已經成立,排除 R9C1=3。

R5C1=3 已經成立,排除 R9C1=3。
R5C1=3 已經成立,排除 R9C1=3。
步驟 14 · 強關係:另一端被迫成立

R9C1=3 不成立。這兩端合起來包含第 9 行中的全部剩餘選項,因此 R9C8=3 被迫成立。

R9C1=3 不成立。這兩端合起來包含第 9 行中的全部剩餘選項,因此 R9C8=3 被迫成立。
R9C1=3 不成立。這兩端合起來包含第 9 行中的全部剩餘選項,因此 R9C8=3 被迫成立。
步驟 15 · 弱關係:相連候選互斥

R9C8=3 已經成立,排除 R2C8=3。

R9C8=3 已經成立,排除 R2C8=3。
R9C8=3 已經成立,排除 R2C8=3。
步驟 16 · 同格切換:另一候選被迫成立

R2C8=3 不成立。在同一格 R2C8 內,同格另一候選 R2C8=8 在當前假設下被迫成立。

R2C8=3 不成立。在同一格 R2C8 內,同格另一候選 R2C8=8 在當前假設下被迫成立。
R2C8=3 不成立。在同一格 R2C8 內,同格另一候選 R2C8=8 在當前假設下被迫成立。
步驟 17 · 弱關係:相連候選互斥

R2C8=8 已經成立,排除 R2C6=8。

R2C8=8 已經成立,排除 R2C6=8。
R2C8=8 已經成立,排除 R2C6=8。
步驟 18 · 強關係:另一端被迫成立

R2C6=8 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R1C6=8 被迫成立。

R2C6=8 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R1C6=8 被迫成立。
R2C6=8 不成立。這兩端合起來包含第 6 列中的全部剩餘選項,因此 R1C6=8 被迫成立。
步驟 19 · 交替鏈產生矛盾

推導結果與“R1C6=1 成立”矛盾,所以R1C6=1 不成立。

推導結果與“R1C6=1 成立”矛盾,所以R1C6=1 不成立。
推導結果與“R1C6=1 成立”矛盾,所以R1C6=1 不成立。
步驟 20 · 撤回上一種矩形填法

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
步驟 21 · AIC 首尾摘要

交替鏈從“R1C6=1 成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C6=1 不成立。全部臨時狀態均已撤回。

交替鏈從“R1C6=1 成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C6=1 不成立。全部臨時狀態均已撤回。
交替鏈從“R1C6=1 成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C6=1 不成立。全部臨時狀態均已撤回。

可以得出甚麼

交替鏈從“R1C6=1 成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C6=1 不成立。全部臨時狀態均已撤回。

Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。
Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。

分步講解 · 不連續·填數

本例從已儲存的中途盤面開始,候選數包含先前邏輯排除的結果,並非剛剛自動產生的筆記。

藍色:推理依據。綠色:結論。劃線數字:排除的候選數。R1C1 表示第1列第1欄。

步驟 1 · 先讀懂 AIC 交替鏈

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C1=4 不成立”開始觀察 R1C1=4。在第 1 行, 第 2 列, 第 4 宮, 第 3 列中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C1=4 不成立”開始觀察 R1C1=4。在第 1 行, 第 2 列, 第 4 宮, 第 3 列中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C1=4 不成立”開始觀察 R1C1=4。在第 1 行, 第 2 列, 第 4 宮, 第 3 列中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
步驟 2 · 假設:開始交替鏈

分支 1:假設 R1C1=4 不成立。

分支 1:假設 R1C1=4 不成立。
分支 1:假設 R1C1=4 不成立。
步驟 3 · 強關係:另一端被迫成立

R1C1=4 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C3=4 被迫成立。

R1C1=4 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C3=4 被迫成立。
R1C1=4 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C3=4 被迫成立。
步驟 4 · 弱關係:相連候選互斥

R1C3=4 已經成立,排除 R1C3=5。

R1C3=4 已經成立,排除 R1C3=5。
R1C3=4 已經成立,排除 R1C3=5。
步驟 5 · 強關係:另一端被迫成立

R1C3=5 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C2=5 被迫成立。

R1C3=5 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C2=5 被迫成立。
R1C3=5 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C2=5 被迫成立。
步驟 6 · 弱關係:相連候選互斥

R1C2=5 已經成立,排除 R1C2=9。

R1C2=5 已經成立,排除 R1C2=9。
R1C2=5 已經成立,排除 R1C2=9。
步驟 7 · 強關係:另一端被迫成立

R1C2=9 不成立。這兩端合起來包含第 2 列中的全部剩餘選項,因此 R5C2=9 被迫成立。

R1C2=9 不成立。這兩端合起來包含第 2 列中的全部剩餘選項,因此 R5C2=9 被迫成立。
R1C2=9 不成立。這兩端合起來包含第 2 列中的全部剩餘選項,因此 R5C2=9 被迫成立。
步驟 8 · 弱關係:相連候選互斥

R5C2=9 已經成立,排除 R4C3=9。

R5C2=9 已經成立,排除 R4C3=9。
R5C2=9 已經成立,排除 R4C3=9。
步驟 9 · 同格切換:另一候選被迫成立

R4C3=9 不成立。在同一格 R4C3 內,同格另一候選 R4C3=4 在當前假設下被迫成立。

R4C3=9 不成立。在同一格 R4C3 內,同格另一候選 R4C3=4 在當前假設下被迫成立。
R4C3=9 不成立。在同一格 R4C3 內,同格另一候選 R4C3=4 在當前假設下被迫成立。
步驟 10 · 弱關係:相連候選互斥

R4C3=4 已經成立,排除 R1C3=4。

R4C3=4 已經成立,排除 R1C3=4。
R4C3=4 已經成立,排除 R1C3=4。
步驟 11 · 交替鏈產生矛盾

推導結果與“R1C1=4 不成立”矛盾,所以R1C1=4 成立。

推導結果與“R1C1=4 不成立”矛盾,所以R1C1=4 成立。
推導結果與“R1C1=4 不成立”矛盾,所以R1C1=4 成立。
步驟 12 · 撤回上一種矩形填法

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
步驟 13 · AIC 首尾摘要

交替鏈從“R1C1=4 不成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C1=4 成立。全部臨時狀態均已撤回。

交替鏈從“R1C1=4 不成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C1=4 成立。全部臨時狀態均已撤回。
交替鏈從“R1C1=4 不成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C1=4 成立。全部臨時狀態均已撤回。

可以得出甚麼

交替鏈從“R1C1=4 不成立”出發,沿頁面標出的強關係和弱關係推進,需要時切換到同格另一候選,最終產生矛盾。因此R1C1=4 成立。全部臨時狀態均已撤回。

Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。
Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。

分步講解 · 一型

本例從已儲存的中途盤面開始,候選數包含先前邏輯排除的結果,並非剛剛自動產生的筆記。

藍色:推理依據。綠色:結論。劃線數字:排除的候選數。R1C1 表示第1列第1欄。

步驟 1 · 先讀懂 AIC 交替鏈

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C6=2 不成立”開始觀察 R1C8=2, R1C9=2, R2C4=2。在第 6 列, 第 2 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C6=2 不成立”開始觀察 R1C8=2, R1C9=2, R2C4=2。在第 6 列, 第 2 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C6=2 不成立”開始觀察 R1C8=2, R1C9=2, R2C4=2。在第 6 列, 第 2 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
步驟 2 · 假設:開始交替鏈

分支 1:假設 R1C6=2 不成立。

分支 1:假設 R1C6=2 不成立。
分支 1:假設 R1C6=2 不成立。
步驟 3 · 同格切換:另一候選被迫成立

R1C6=2 不成立。在同一格 R1C6 內,同格另一候選 R1C6=1 在當前假設下被迫成立。

R1C6=2 不成立。在同一格 R1C6 內,同格另一候選 R1C6=1 在當前假設下被迫成立。
R1C6=2 不成立。在同一格 R1C6 內,同格另一候選 R1C6=1 在當前假設下被迫成立。
步驟 4 · 弱關係:相連候選互斥

R1C6=1 已經成立,排除 R6C6=1。

R1C6=1 已經成立,排除 R6C6=1。
R1C6=1 已經成立,排除 R6C6=1。
步驟 5 · 同格切換:另一候選被迫成立

R6C6=1 不成立。在同一格 R6C6 內,同格另一候選 R6C6=6 在當前假設下被迫成立。

R6C6=1 不成立。在同一格 R6C6 內,同格另一候選 R6C6=6 在當前假設下被迫成立。
R6C6=1 不成立。在同一格 R6C6 內,同格另一候選 R6C6=6 在當前假設下被迫成立。
步驟 6 · 弱關係:相連候選互斥

R6C6=6 已經成立,排除 R2C6=6。

R6C6=6 已經成立,排除 R2C6=6。
R6C6=6 已經成立,排除 R2C6=6。
步驟 7 · 同格切換:另一候選被迫成立

R2C6=6 不成立。在同一格 R2C6 內,同格另一候選 R2C6=7 在當前假設下被迫成立。

R2C6=6 不成立。在同一格 R2C6 內,同格另一候選 R2C6=7 在當前假設下被迫成立。
R2C6=6 不成立。在同一格 R2C6 內,同格另一候選 R2C6=7 在當前假設下被迫成立。
步驟 8 · 弱關係:相連候選互斥

R2C6=7 已經成立,排除 R2C8=7。

R2C6=7 已經成立,排除 R2C8=7。
R2C6=7 已經成立,排除 R2C8=7。
步驟 9 · 同格切換:另一候選被迫成立

R2C8=7 不成立。在同一格 R2C8 內,同格另一候選 R2C8=2 在當前假設下被迫成立。

R2C8=7 不成立。在同一格 R2C8 內,同格另一候選 R2C8=2 在當前假設下被迫成立。
R2C8=7 不成立。在同一格 R2C8 內,同格另一候選 R2C8=2 在當前假設下被迫成立。
步驟 10 · AIC 首尾摘要

同數字端點 R1C6=2 與 R2C8=2 至少有一端成立。目標 R1C8=2, R1C9=2, R2C4=2 都同時看見兩端,因此每個目標都不可能成立。

同數字端點 R1C6=2 與 R2C8=2 至少有一端成立。目標 R1C8=2, R1C9=2, R2C4=2 都同時看見兩端,因此每個目標都不可能成立。
同數字端點 R1C6=2 與 R2C8=2 至少有一端成立。目標 R1C8=2, R1C9=2, R2C4=2 都同時看見兩端,因此每個目標都不可能成立。
步驟 11 · 撤回上一種矩形填法

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
步驟 12 · AIC 首尾摘要

撤回臨時端點狀態。Type 1 AIC 的永久結論是刪除 R1C8=2, R1C9=2, R2C4=2,因為它們同時看見 R1C6=2 與 R2C8=2。

撤回臨時端點狀態。Type 1 AIC 的永久結論是刪除 R1C8=2, R1C9=2, R2C4=2,因為它們同時看見 R1C6=2 與 R2C8=2。
撤回臨時端點狀態。Type 1 AIC 的永久結論是刪除 R1C8=2, R1C9=2, R2C4=2,因為它們同時看見 R1C6=2 與 R2C8=2。

可以得出甚麼

撤回臨時端點狀態。Type 1 AIC 的永久結論是刪除 R1C8=2, R1C9=2, R2C4=2,因為它們同時看見 R1C6=2 與 R2C8=2。

Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。
Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。

分步講解 · 二型

本例從已儲存的中途盤面開始,候選數包含先前邏輯排除的結果,並非剛剛自動產生的筆記。

藍色:推理依據。綠色:結論。劃線數字:排除的候選數。R1C1 表示第1列第1欄。

步驟 1 · 先讀懂 AIC 交替鏈

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C8=9 不成立”開始觀察 R4C8=9。在第 1 行, 第 7 列, 第 6 宮, 第 8 列, 第 3 行, 第 6 列, 第 5 行, 第 4 列, 第 6 行, 第 9 列, 第 4 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C8=9 不成立”開始觀察 R4C8=9。在第 1 行, 第 7 列, 第 6 宮, 第 8 列, 第 3 行, 第 6 列, 第 5 行, 第 4 列, 第 6 行, 第 9 列, 第 4 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R1C8=9 不成立”開始觀察 R4C8=9。在第 1 行, 第 7 列, 第 6 宮, 第 8 列, 第 3 行, 第 6 列, 第 5 行, 第 4 列, 第 6 行, 第 9 列, 第 4 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
步驟 2 · 假設:開始交替鏈

分支 1:假設 R1C8=9 不成立。

分支 1:假設 R1C8=9 不成立。
分支 1:假設 R1C8=9 不成立。
步驟 3 · 強關係:另一端被迫成立

R1C8=9 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C7=9 被迫成立。

R1C8=9 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C7=9 被迫成立。
R1C8=9 不成立。這兩端合起來包含第 1 行中的全部剩餘選項,因此 R1C7=9 被迫成立。
步驟 4 · 弱關係:相連候選互斥

R1C7=9 已經成立,排除 R5C7=9。

R1C7=9 已經成立,排除 R5C7=9。
R1C7=9 已經成立,排除 R5C7=9。
步驟 5 · 同格切換:另一候選被迫成立

R5C7=9 不成立。在同一格 R5C7 內,同格另一候選 R5C7=2 在當前假設下被迫成立。

R5C7=9 不成立。在同一格 R5C7 內,同格另一候選 R5C7=2 在當前假設下被迫成立。
R5C7=9 不成立。在同一格 R5C7 內,同格另一候選 R5C7=2 在當前假設下被迫成立。
步驟 6 · 弱關係:相連候選互斥

R5C7=2 已經成立,排除 R6C8=2。

R5C7=2 已經成立,排除 R6C8=2。
R5C7=2 已經成立,排除 R6C8=2。
步驟 7 · 同格切換:另一候選被迫成立

R6C8=2 不成立。在同一格 R6C8 內,同格另一候選 R6C8=1 在當前假設下被迫成立。

R6C8=2 不成立。在同一格 R6C8 內,同格另一候選 R6C8=1 在當前假設下被迫成立。
R6C8=2 不成立。在同一格 R6C8 內,同格另一候選 R6C8=1 在當前假設下被迫成立。
步驟 8 · 弱關係:相連候選互斥

R6C8=1 已經成立,排除 R3C8=1。

R6C8=1 已經成立,排除 R3C8=1。
R6C8=1 已經成立,排除 R3C8=1。
步驟 9 · 同格切換:另一候選被迫成立

R3C8=1 不成立。在同一格 R3C8 內,同格另一候選 R3C8=6 在當前假設下被迫成立。

R3C8=1 不成立。在同一格 R3C8 內,同格另一候選 R3C8=6 在當前假設下被迫成立。
R3C8=1 不成立。在同一格 R3C8 內,同格另一候選 R3C8=6 在當前假設下被迫成立。
步驟 10 · 弱關係:相連候選互斥

R3C8=6 已經成立,排除 R3C6=6。

R3C8=6 已經成立,排除 R3C6=6。
R3C8=6 已經成立,排除 R3C6=6。
步驟 11 · 同格切換:另一候選被迫成立

R3C6=6 不成立。在同一格 R3C6 內,同格另一候選 R3C6=4 在當前假設下被迫成立。

R3C6=6 不成立。在同一格 R3C6 內,同格另一候選 R3C6=4 在當前假設下被迫成立。
R3C6=6 不成立。在同一格 R3C6 內,同格另一候選 R3C6=4 在當前假設下被迫成立。
步驟 12 · 弱關係:相連候選互斥

R3C6=4 已經成立,排除 R5C6=4。

R3C6=4 已經成立,排除 R5C6=4。
R3C6=4 已經成立,排除 R5C6=4。
步驟 13 · 強關係:另一端被迫成立

R5C6=4 不成立。這兩端合起來包含第 5 行中的全部剩餘選項,因此 R5C4=4 被迫成立。

R5C6=4 不成立。這兩端合起來包含第 5 行中的全部剩餘選項,因此 R5C4=4 被迫成立。
R5C6=4 不成立。這兩端合起來包含第 5 行中的全部剩餘選項,因此 R5C4=4 被迫成立。
步驟 14 · 弱關係:相連候選互斥

R5C4=4 已經成立,排除 R5C4=3。

R5C4=4 已經成立,排除 R5C4=3。
R5C4=4 已經成立,排除 R5C4=3。
步驟 15 · 強關係:另一端被迫成立

R5C4=3 不成立。這兩端合起來包含第 4 列中的全部剩餘選項,因此 R6C4=3 被迫成立。

R5C4=3 不成立。這兩端合起來包含第 4 列中的全部剩餘選項,因此 R6C4=3 被迫成立。
R5C4=3 不成立。這兩端合起來包含第 4 列中的全部剩餘選項,因此 R6C4=3 被迫成立。
步驟 16 · 弱關係:相連候選互斥

R6C4=3 已經成立,排除 R6C9=3。

R6C4=3 已經成立,排除 R6C9=3。
R6C4=3 已經成立,排除 R6C9=3。
步驟 17 · 強關係:另一端被迫成立

R6C9=3 不成立。這兩端合起來包含第 9 列中的全部剩餘選項,因此 R4C9=3 被迫成立。

R6C9=3 不成立。這兩端合起來包含第 9 列中的全部剩餘選項,因此 R4C9=3 被迫成立。
R6C9=3 不成立。這兩端合起來包含第 9 列中的全部剩餘選項,因此 R4C9=3 被迫成立。
步驟 18 · 弱關係:相連候選互斥

R4C9=3 已經成立,排除 R4C9=7。

R4C9=3 已經成立,排除 R4C9=7。
R4C9=3 已經成立,排除 R4C9=7。
步驟 19 · 強關係:另一端被迫成立

R4C9=7 不成立。這兩端合起來包含第 4 行中的全部剩餘選項,因此 R4C8=7 被迫成立。

R4C9=7 不成立。這兩端合起來包含第 4 行中的全部剩餘選項,因此 R4C8=7 被迫成立。
R4C9=7 不成立。這兩端合起來包含第 4 行中的全部剩餘選項,因此 R4C8=7 被迫成立。
步驟 20 · AIC 首尾摘要

互相可見的端點 R1C8=9 與 R4C8=7 數字不同。每個交叉候選 R4C8=9 都會讓兩個端點同時不成立,因此必須刪除。

互相可見的端點 R1C8=9 與 R4C8=7 數字不同。每個交叉候選 R4C8=9 都會讓兩個端點同時不成立,因此必須刪除。
互相可見的端點 R1C8=9 與 R4C8=7 數字不同。每個交叉候選 R4C8=9 都會讓兩個端點同時不成立,因此必須刪除。
步驟 21 · 撤回上一種矩形填法

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
步驟 22 · AIC 首尾摘要

撤回臨時端點狀態。Type 2 AIC 的永久結論是刪除 R1C8=9 與 R4C8=7 之間的交叉候選 R4C8=9。

撤回臨時端點狀態。Type 2 AIC 的永久結論是刪除 R1C8=9 與 R4C8=7 之間的交叉候選 R4C8=9。
撤回臨時端點狀態。Type 2 AIC 的永久結論是刪除 R1C8=9 與 R4C8=7 之間的交叉候選 R4C8=9。

可以得出甚麼

撤回臨時端點狀態。Type 2 AIC 的永久結論是刪除 R1C8=9 與 R4C8=7 之間的交叉候選 R4C8=9。

Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。
Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。

分步講解 · 連續環

本例從已儲存的中途盤面開始,候選數包含先前邏輯排除的結果,並非剛剛自動產生的筆記。

藍色:推理依據。綠色:結論。劃線數字:排除的候選數。R1C1 表示第1列第1欄。

步驟 1 · 先讀懂 AIC 交替鏈

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R9C3=6 不成立”開始觀察 R9C3=5。在第 3 列, 第 5 行, 第 8 列, 第 9 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。

本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R9C3=6 不成立”開始觀察 R9C3=5。在第 3 列, 第 5 行, 第 8 列, 第 9 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
本課覆蓋 HoDoKu 普通候選節點的 Nice Loop / AIC 家族:不連續環刪除與落數、開放式 Type 1 與 Type 2,以及連續環。先從“R9C3=6 不成立”開始觀察 R9C3=5。在第 3 列, 第 5 行, 第 8 列, 第 9 行中,實線表示兩端至少一端成立,虛線表示兩端不能同時成立;每頁只推進一條高亮關係。
步驟 2 · 假設:開始交替鏈

只把 R9C3=6 作為閉環的閱讀起點,不是在試數;交替環最終會回到這裡。

只把 R9C3=6 作為閉環的閱讀起點,不是在試數;交替環最終會回到這裡。
只把 R9C3=6 作為閉環的閱讀起點,不是在試數;交替環最終會回到這裡。
步驟 3 · 強關係:另一端被迫成立

R9C3=6 不成立。這兩端合起來包含第 3 列中的全部剩餘選項,因此 R5C3=6 被迫成立。

R9C3=6 不成立。這兩端合起來包含第 3 列中的全部剩餘選項,因此 R5C3=6 被迫成立。
R9C3=6 不成立。這兩端合起來包含第 3 列中的全部剩餘選項,因此 R5C3=6 被迫成立。
步驟 4 · 弱關係:相連候選互斥

R5C3=6 已經成立,排除 R5C8=6。

R5C3=6 已經成立,排除 R5C8=6。
R5C3=6 已經成立,排除 R5C8=6。
步驟 5 · 同格切換:另一候選被迫成立

R5C8=6 不成立。在同一格 R5C8 內,同格另一候選 R5C8=8 在當前假設下被迫成立。

R5C8=6 不成立。在同一格 R5C8 內,同格另一候選 R5C8=8 在當前假設下被迫成立。
R5C8=6 不成立。在同一格 R5C8 內,同格另一候選 R5C8=8 在當前假設下被迫成立。
步驟 6 · 弱關係:相連候選互斥

R5C8=8 已經成立,排除 R9C8=8。

R5C8=8 已經成立,排除 R9C8=8。
R5C8=8 已經成立,排除 R9C8=8。
步驟 7 · 強關係:另一端被迫成立

R9C8=8 不成立。這兩端合起來包含第 9 行中的全部剩餘選項,因此 R9C3=8 被迫成立。

R9C8=8 不成立。這兩端合起來包含第 9 行中的全部剩餘選項,因此 R9C3=8 被迫成立。
R9C8=8 不成立。這兩端合起來包含第 9 行中的全部剩餘選項,因此 R9C3=8 被迫成立。
步驟 8 · 弱關係:相連候選互斥

R9C3=8 已經成立,排除 R9C3=6。

R9C3=8 已經成立,排除 R9C3=6。
R9C3=8 已經成立,排除 R9C3=6。
步驟 9 · AIC 首尾摘要

交替鏈閉合為連續環,因此環上的每條弱關係都被加強為強關係;從相關格或區域刪除 R9C3=5。

交替鏈閉合為連續環,因此環上的每條弱關係都被加強為強關係;從相關格或區域刪除 R9C3=5。
交替鏈閉合為連續環,因此環上的每條弱關係都被加強為強關係;從相關格或區域刪除 R9C3=5。
步驟 10 · 撤回上一種矩形填法

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。

撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
撤回這個假設和由它產生的結果。恢復原候選快照,再檢查下一種可能。
步驟 11 · AIC 首尾摘要

閉環已走完;撤回全部臨時狀態,並永久刪除 R9C3=5。

閉環已走完;撤回全部臨時狀態,並永久刪除 R9C3=5。
閉環已走完;撤回全部臨時狀態,並永久刪除 R9C3=5。

可以得出甚麼

閉環已走完;撤回全部臨時狀態,並永久刪除 R9C3=5。

Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。
Nice Loop / AIC · 按已驗證的結果排除候選,或在相反狀態不可能時填入數字。

練習

本課程改編自 Platon Sudoku App 的教學內容。你可以在這裡讀完完整實例,再到應用程式中繼續學習和練習。

在 Google Play 查看