简体中文

Platon Sudoku · 数独研习室

XY链 · 分步讲解

链上每格恰好两个候选;相邻格互相看见并共享连接数字,首尾含相同目标数字。 从同时看见首尾两端的格子排除共同数字。

本课程改编自 Platon Sudoku App 的教学内容。你可以在这里读完完整实例,再到应用中继续学习和练习。

在 Google Play 查看

辨认模式

链上每格恰好两个候选;相邻格互相看见并共享连接数字,首尾含相同目标数字。

如何寻找

沿互见的双候选格逐格切换另一个数字,直到末端也含起点的目标数字。

可以得出什么

从同时看见首尾两端的格子排除共同数字。

别看错了

任何链格若有第三个候选就不成立;每条连接和目标对两端的视线都要核对。

分步讲解 · 短链

本例从已保存的中途盘面开始,候选数包含此前逻辑排除的结果,并非刚刚自动生成的笔记。

蓝色:推理依据。绿色:结论。划线数字:排除的候选数。R1C1 表示第1行第1列。

步骤 1 · 先建立双值链

链上的每一格都是双值格:R5C8={4, 7}, R5C4={3, 7}, R6C6={2, 3}, R6C5={2, 4}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R5C8=4, R6C5=4 都是候选 4。

链上的每一格都是双值格:R5C8={4, 7}, R5C4={3, 7}, R6C6={2, 3}, R6C5={2, 4}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R5C8=4, R6C5=4 都是候选 4。
链上的每一格都是双值格:R5C8={4, 7}, R5C4={3, 7}, R6C6={2, 3}, R6C5={2, 4}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R5C8=4, R6C5=4 都是候选 4。
步骤 2 · 推理过程

分支 1:假设 R5C8=4 不成立。

分支 1:假设 R5C8=4 不成立。
分支 1:假设 R5C8=4 不成立。
步骤 3 · 推理过程

R5C8=4 不成立。R5C8 现在只剩 R5C8=7,因此它必须成立。

R5C8=4 不成立。R5C8 现在只剩 R5C8=7,因此它必须成立。
R5C8=4 不成立。R5C8 现在只剩 R5C8=7,因此它必须成立。
步骤 4 · 推理过程

第一种:R5C8 是双值格(R5C8=4, R5C8=7)。其中另一个候选不成立,所以 R5C8=7 在当前假设下被迫成立;它与不同格中的 R5C4=7 互斥,因此划掉这些冲突候选。

第一种:R5C8 是双值格(R5C8=4, R5C8=7)。其中另一个候选不成立,所以 R5C8=7 在当前假设下被迫成立;它与不同格中的 R5C4=7 互斥,因此划掉这些冲突候选。
第一种:R5C8 是双值格(R5C8=4, R5C8=7)。其中另一个候选不成立,所以 R5C8=7 在当前假设下被迫成立;它与不同格中的 R5C4=7 互斥,因此划掉这些冲突候选。
步骤 5 · 推理过程

R5C4=7 不成立。R5C4 现在只剩 R5C4=3,因此它必须成立。

R5C4=7 不成立。R5C4 现在只剩 R5C4=3,因此它必须成立。
R5C4=7 不成立。R5C4 现在只剩 R5C4=3,因此它必须成立。
步骤 6 · 推理过程

下一个节点 R5C4 仍是双值格(R5C4=3, R5C4=7)。其中另一个候选不成立,所以 R5C4=3 在当前假设下被迫成立;它与不同格中的 R6C6=3 互斥,因此划掉这些冲突候选。

下一个节点 R5C4 仍是双值格(R5C4=3, R5C4=7)。其中另一个候选不成立,所以 R5C4=3 在当前假设下被迫成立;它与不同格中的 R6C6=3 互斥,因此划掉这些冲突候选。
下一个节点 R5C4 仍是双值格(R5C4=3, R5C4=7)。其中另一个候选不成立,所以 R5C4=3 在当前假设下被迫成立;它与不同格中的 R6C6=3 互斥,因此划掉这些冲突候选。
步骤 7 · 推理过程

R6C6=3 不成立。R6C6 现在只剩 R6C6=2,因此它必须成立。

R6C6=3 不成立。R6C6 现在只剩 R6C6=2,因此它必须成立。
R6C6=3 不成立。R6C6 现在只剩 R6C6=2,因此它必须成立。
步骤 8 · 推理过程

下一个节点 R6C6 仍是双值格(R6C6=2, R6C6=3)。其中另一个候选不成立,所以 R6C6=2 在当前假设下被迫成立;它与不同格中的 R6C5=2 互斥,因此划掉这些冲突候选。

下一个节点 R6C6 仍是双值格(R6C6=2, R6C6=3)。其中另一个候选不成立,所以 R6C6=2 在当前假设下被迫成立;它与不同格中的 R6C5=2 互斥,因此划掉这些冲突候选。
下一个节点 R6C6 仍是双值格(R6C6=2, R6C6=3)。其中另一个候选不成立,所以 R6C6=2 在当前假设下被迫成立;它与不同格中的 R6C5=2 互斥,因此划掉这些冲突候选。
步骤 9 · 推理过程

末端 R6C5 是双值格(R6C5=2, R6C5=4)。R6C5=2 不成立,所以 R6C5=4 在当前假设下被迫成立,并排除目标 R6C8=4, R6C9=4。

末端 R6C5 是双值格(R6C5=2, R6C5=4)。R6C5=2 不成立,所以 R6C5=4 在当前假设下被迫成立,并排除目标 R6C8=4, R6C9=4。
末端 R6C5 是双值格(R6C5=2, R6C5=4)。R6C5=2 不成立,所以 R6C5=4 在当前假设下被迫成立,并排除目标 R6C8=4, R6C9=4。
步骤 10 · 撤回上一种矩形填法

撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。

撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。
撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。
步骤 11 · 推理过程

假设首端 R5C8=4 在双值格 R5C8(R5C8=4, R5C8=7)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R5C8=7, R6C8=4, R6C9=4。

假设首端 R5C8=4 在双值格 R5C8(R5C8=4, R5C8=7)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R5C8=7, R6C8=4, R6C9=4。
假设首端 R5C8=4 在双值格 R5C8(R5C8=4, R5C8=7)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R5C8=7, R6C8=4, R6C9=4。
步骤 12 · 结论

两个端点情况穷尽全部可能,并且都会划掉 R6C8=4, R6C9=4。撤回临时状态后,可以删除。

两个端点情况穷尽全部可能,并且都会划掉 R6C8=4, R6C9=4。撤回临时状态后,可以删除。
两个端点情况穷尽全部可能,并且都会划掉 R6C8=4, R6C9=4。撤回临时状态后,可以删除。

可以得出什么

两个端点情况穷尽全部可能,并且都会划掉 R6C8=4, R6C9=4。撤回临时状态后,可以删除。

XY链 · 从同时看见首尾两端的格子排除共同数字。
XY链 · 从同时看见首尾两端的格子排除共同数字。

分步讲解 · 中链

本例从已保存的中途盘面开始,候选数包含此前逻辑排除的结果,并非刚刚自动生成的笔记。

蓝色:推理依据。绿色:结论。划线数字:排除的候选数。R1C1 表示第1行第1列。

步骤 1 · 先建立双值链

链上的每一格都是双值格:R1C4={3, 8}, R1C8={6, 8}, R7C8={2, 6}, R7C6={2, 4}, R7C5={3, 4}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R1C4=3, R7C5=3 都是候选 3。

链上的每一格都是双值格:R1C4={3, 8}, R1C8={6, 8}, R7C8={2, 6}, R7C6={2, 4}, R7C5={3, 4}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R1C4=3, R7C5=3 都是候选 3。
链上的每一格都是双值格:R1C4={3, 8}, R1C8={6, 8}, R7C8={2, 6}, R7C6={2, 4}, R7C5={3, 4}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R1C4=3, R7C5=3 都是候选 3。
步骤 2 · 推理过程

分支 1:假设 R1C4=3 不成立。

分支 1:假设 R1C4=3 不成立。
分支 1:假设 R1C4=3 不成立。
步骤 3 · 推理过程

R1C4=3 不成立。R1C4 现在只剩 R1C4=8,因此它必须成立。

R1C4=3 不成立。R1C4 现在只剩 R1C4=8,因此它必须成立。
R1C4=3 不成立。R1C4 现在只剩 R1C4=8,因此它必须成立。
步骤 4 · 推理过程

第一种:R1C4 是双值格(R1C4=3, R1C4=8)。其中另一个候选不成立,所以 R1C4=8 在当前假设下被迫成立;它与不同格中的 R1C8=8 互斥,因此划掉这些冲突候选。

第一种:R1C4 是双值格(R1C4=3, R1C4=8)。其中另一个候选不成立,所以 R1C4=8 在当前假设下被迫成立;它与不同格中的 R1C8=8 互斥,因此划掉这些冲突候选。
第一种:R1C4 是双值格(R1C4=3, R1C4=8)。其中另一个候选不成立,所以 R1C4=8 在当前假设下被迫成立;它与不同格中的 R1C8=8 互斥,因此划掉这些冲突候选。
步骤 5 · 推理过程

R1C8=8 不成立。R1C8 现在只剩 R1C8=6,因此它必须成立。

R1C8=8 不成立。R1C8 现在只剩 R1C8=6,因此它必须成立。
R1C8=8 不成立。R1C8 现在只剩 R1C8=6,因此它必须成立。
步骤 6 · 推理过程

下一个节点 R1C8 仍是双值格(R1C8=6, R1C8=8)。其中另一个候选不成立,所以 R1C8=6 在当前假设下被迫成立;它与不同格中的 R7C8=6 互斥,因此划掉这些冲突候选。

下一个节点 R1C8 仍是双值格(R1C8=6, R1C8=8)。其中另一个候选不成立,所以 R1C8=6 在当前假设下被迫成立;它与不同格中的 R7C8=6 互斥,因此划掉这些冲突候选。
下一个节点 R1C8 仍是双值格(R1C8=6, R1C8=8)。其中另一个候选不成立,所以 R1C8=6 在当前假设下被迫成立;它与不同格中的 R7C8=6 互斥,因此划掉这些冲突候选。
步骤 7 · 推理过程

R7C8=6 不成立。R7C8 现在只剩 R7C8=2,因此它必须成立。

R7C8=6 不成立。R7C8 现在只剩 R7C8=2,因此它必须成立。
R7C8=6 不成立。R7C8 现在只剩 R7C8=2,因此它必须成立。
步骤 8 · 推理过程

下一个节点 R7C8 仍是双值格(R7C8=2, R7C8=6)。其中另一个候选不成立,所以 R7C8=2 在当前假设下被迫成立;它与不同格中的 R7C6=2 互斥,因此划掉这些冲突候选。

下一个节点 R7C8 仍是双值格(R7C8=2, R7C8=6)。其中另一个候选不成立,所以 R7C8=2 在当前假设下被迫成立;它与不同格中的 R7C6=2 互斥,因此划掉这些冲突候选。
下一个节点 R7C8 仍是双值格(R7C8=2, R7C8=6)。其中另一个候选不成立,所以 R7C8=2 在当前假设下被迫成立;它与不同格中的 R7C6=2 互斥,因此划掉这些冲突候选。
步骤 9 · 推理过程

R7C6=2 不成立。R7C6 现在只剩 R7C6=4,因此它必须成立。

R7C6=2 不成立。R7C6 现在只剩 R7C6=4,因此它必须成立。
R7C6=2 不成立。R7C6 现在只剩 R7C6=4,因此它必须成立。
步骤 10 · 推理过程

下一个节点 R7C6 仍是双值格(R7C6=2, R7C6=4)。其中另一个候选不成立,所以 R7C6=4 在当前假设下被迫成立;它与不同格中的 R7C5=4 互斥,因此划掉这些冲突候选。

下一个节点 R7C6 仍是双值格(R7C6=2, R7C6=4)。其中另一个候选不成立,所以 R7C6=4 在当前假设下被迫成立;它与不同格中的 R7C5=4 互斥,因此划掉这些冲突候选。
下一个节点 R7C6 仍是双值格(R7C6=2, R7C6=4)。其中另一个候选不成立,所以 R7C6=4 在当前假设下被迫成立;它与不同格中的 R7C5=4 互斥,因此划掉这些冲突候选。
步骤 11 · 推理过程

末端 R7C5 是双值格(R7C5=3, R7C5=4)。R7C5=4 不成立,所以 R7C5=3 在当前假设下被迫成立,并排除目标 R1C5=3, R8C4=3。

末端 R7C5 是双值格(R7C5=3, R7C5=4)。R7C5=4 不成立,所以 R7C5=3 在当前假设下被迫成立,并排除目标 R1C5=3, R8C4=3。
末端 R7C5 是双值格(R7C5=3, R7C5=4)。R7C5=4 不成立,所以 R7C5=3 在当前假设下被迫成立,并排除目标 R1C5=3, R8C4=3。
步骤 12 · 撤回上一种矩形填法

撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。

撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。
撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。
步骤 13 · 推理过程

假设首端 R1C4=3 在双值格 R1C4(R1C4=3, R1C4=8)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R1C4=8, R1C5=3, R8C4=3。

假设首端 R1C4=3 在双值格 R1C4(R1C4=3, R1C4=8)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R1C4=8, R1C5=3, R8C4=3。
假设首端 R1C4=3 在双值格 R1C4(R1C4=3, R1C4=8)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R1C4=8, R1C5=3, R8C4=3。
步骤 14 · 结论

两个端点情况穷尽全部可能,并且都会划掉 R1C5=3, R8C4=3。撤回临时状态后,可以删除。

两个端点情况穷尽全部可能,并且都会划掉 R1C5=3, R8C4=3。撤回临时状态后,可以删除。
两个端点情况穷尽全部可能,并且都会划掉 R1C5=3, R8C4=3。撤回临时状态后,可以删除。

可以得出什么

两个端点情况穷尽全部可能,并且都会划掉 R1C5=3, R8C4=3。撤回临时状态后,可以删除。

XY链 · 从同时看见首尾两端的格子排除共同数字。
XY链 · 从同时看见首尾两端的格子排除共同数字。

分步讲解 · 长链

本例从已保存的中途盘面开始,候选数包含此前逻辑排除的结果,并非刚刚自动生成的笔记。

蓝色:推理依据。绿色:结论。划线数字:排除的候选数。R1C1 表示第1行第1列。

步骤 1 · 先建立双值链

链上的每一格都是双值格:R1C3={1, 9}, R1C4={7, 9}, R2C4={7, 9}, R2C8={5, 9}, R2C5={5, 6}, R2C6={1, 6}, R2C9={1, 7}, R3C9={1, 7}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R1C3=1, R3C9=1 都是候选 1。

链上的每一格都是双值格:R1C3={1, 9}, R1C4={7, 9}, R2C4={7, 9}, R2C8={5, 9}, R2C5={5, 6}, R2C6={1, 6}, R2C9={1, 7}, R3C9={1, 7}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R1C3=1, R3C9=1 都是候选 1。
链上的每一格都是双值格:R1C3={1, 9}, R1C4={7, 9}, R2C4={7, 9}, R2C8={5, 9}, R2C5={5, 6}, R2C6={1, 6}, R2C9={1, 7}, R3C9={1, 7}。在同一格内,两个候选形成强关系:一个不成立时,另一个在当前假设下被迫成立;在不同格之间,相连的同名候选互相可见,形成不能同时成立的互斥关系。链的两端 R1C3=1, R3C9=1 都是候选 1。
步骤 2 · 推理过程

分支 1:假设 R1C3=1 不成立。

分支 1:假设 R1C3=1 不成立。
分支 1:假设 R1C3=1 不成立。
步骤 3 · 推理过程

R1C3=1 不成立。R1C3 现在只剩 R1C3=9,因此它必须成立。

R1C3=1 不成立。R1C3 现在只剩 R1C3=9,因此它必须成立。
R1C3=1 不成立。R1C3 现在只剩 R1C3=9,因此它必须成立。
步骤 4 · 推理过程

第一种:R1C3 是双值格(R1C3=1, R1C3=9)。其中另一个候选不成立,所以 R1C3=9 在当前假设下被迫成立;它与不同格中的 R1C4=9 互斥,因此划掉这些冲突候选。

第一种:R1C3 是双值格(R1C3=1, R1C3=9)。其中另一个候选不成立,所以 R1C3=9 在当前假设下被迫成立;它与不同格中的 R1C4=9 互斥,因此划掉这些冲突候选。
第一种:R1C3 是双值格(R1C3=1, R1C3=9)。其中另一个候选不成立,所以 R1C3=9 在当前假设下被迫成立;它与不同格中的 R1C4=9 互斥,因此划掉这些冲突候选。
步骤 5 · 推理过程

R1C4=9 不成立。R1C4 现在只剩 R1C4=7,因此它必须成立。

R1C4=9 不成立。R1C4 现在只剩 R1C4=7,因此它必须成立。
R1C4=9 不成立。R1C4 现在只剩 R1C4=7,因此它必须成立。
步骤 6 · 推理过程

下一个节点 R1C4 仍是双值格(R1C4=7, R1C4=9)。其中另一个候选不成立,所以 R1C4=7 在当前假设下被迫成立;它与不同格中的 R2C4=7 互斥,因此划掉这些冲突候选。

下一个节点 R1C4 仍是双值格(R1C4=7, R1C4=9)。其中另一个候选不成立,所以 R1C4=7 在当前假设下被迫成立;它与不同格中的 R2C4=7 互斥,因此划掉这些冲突候选。
下一个节点 R1C4 仍是双值格(R1C4=7, R1C4=9)。其中另一个候选不成立,所以 R1C4=7 在当前假设下被迫成立;它与不同格中的 R2C4=7 互斥,因此划掉这些冲突候选。
步骤 7 · 推理过程

R2C4=7 不成立。R2C4 现在只剩 R2C4=9,因此它必须成立。

R2C4=7 不成立。R2C4 现在只剩 R2C4=9,因此它必须成立。
R2C4=7 不成立。R2C4 现在只剩 R2C4=9,因此它必须成立。
步骤 8 · 推理过程

下一个节点 R2C4 仍是双值格(R2C4=7, R2C4=9)。其中另一个候选不成立,所以 R2C4=9 在当前假设下被迫成立;它与不同格中的 R2C8=9 互斥,因此划掉这些冲突候选。

下一个节点 R2C4 仍是双值格(R2C4=7, R2C4=9)。其中另一个候选不成立,所以 R2C4=9 在当前假设下被迫成立;它与不同格中的 R2C8=9 互斥,因此划掉这些冲突候选。
下一个节点 R2C4 仍是双值格(R2C4=7, R2C4=9)。其中另一个候选不成立,所以 R2C4=9 在当前假设下被迫成立;它与不同格中的 R2C8=9 互斥,因此划掉这些冲突候选。
步骤 9 · 推理过程

R2C8=9 不成立。R2C8 现在只剩 R2C8=5,因此它必须成立。

R2C8=9 不成立。R2C8 现在只剩 R2C8=5,因此它必须成立。
R2C8=9 不成立。R2C8 现在只剩 R2C8=5,因此它必须成立。
步骤 10 · 推理过程

下一个节点 R2C8 仍是双值格(R2C8=5, R2C8=9)。其中另一个候选不成立,所以 R2C8=5 在当前假设下被迫成立;它与不同格中的 R2C5=5 互斥,因此划掉这些冲突候选。

下一个节点 R2C8 仍是双值格(R2C8=5, R2C8=9)。其中另一个候选不成立,所以 R2C8=5 在当前假设下被迫成立;它与不同格中的 R2C5=5 互斥,因此划掉这些冲突候选。
下一个节点 R2C8 仍是双值格(R2C8=5, R2C8=9)。其中另一个候选不成立,所以 R2C8=5 在当前假设下被迫成立;它与不同格中的 R2C5=5 互斥,因此划掉这些冲突候选。
步骤 11 · 推理过程

R2C5=5 不成立。R2C5 现在只剩 R2C5=6,因此它必须成立。

R2C5=5 不成立。R2C5 现在只剩 R2C5=6,因此它必须成立。
R2C5=5 不成立。R2C5 现在只剩 R2C5=6,因此它必须成立。
步骤 12 · 推理过程

下一个节点 R2C5 仍是双值格(R2C5=5, R2C5=6)。其中另一个候选不成立,所以 R2C5=6 在当前假设下被迫成立;它与不同格中的 R2C6=6 互斥,因此划掉这些冲突候选。

下一个节点 R2C5 仍是双值格(R2C5=5, R2C5=6)。其中另一个候选不成立,所以 R2C5=6 在当前假设下被迫成立;它与不同格中的 R2C6=6 互斥,因此划掉这些冲突候选。
下一个节点 R2C5 仍是双值格(R2C5=5, R2C5=6)。其中另一个候选不成立,所以 R2C5=6 在当前假设下被迫成立;它与不同格中的 R2C6=6 互斥,因此划掉这些冲突候选。
步骤 13 · 推理过程

R2C6=6 不成立。R2C6 现在只剩 R2C6=1,因此它必须成立。

R2C6=6 不成立。R2C6 现在只剩 R2C6=1,因此它必须成立。
R2C6=6 不成立。R2C6 现在只剩 R2C6=1,因此它必须成立。
步骤 14 · 推理过程

下一个节点 R2C6 仍是双值格(R2C6=1, R2C6=6)。其中另一个候选不成立,所以 R2C6=1 在当前假设下被迫成立;它与不同格中的 R2C9=1 互斥,因此划掉这些冲突候选。

下一个节点 R2C6 仍是双值格(R2C6=1, R2C6=6)。其中另一个候选不成立,所以 R2C6=1 在当前假设下被迫成立;它与不同格中的 R2C9=1 互斥,因此划掉这些冲突候选。
下一个节点 R2C6 仍是双值格(R2C6=1, R2C6=6)。其中另一个候选不成立,所以 R2C6=1 在当前假设下被迫成立;它与不同格中的 R2C9=1 互斥,因此划掉这些冲突候选。
步骤 15 · 推理过程

R2C9=1 不成立。R2C9 现在只剩 R2C9=7,因此它必须成立。

R2C9=1 不成立。R2C9 现在只剩 R2C9=7,因此它必须成立。
R2C9=1 不成立。R2C9 现在只剩 R2C9=7,因此它必须成立。
步骤 16 · 推理过程

下一个节点 R2C9 仍是双值格(R2C9=1, R2C9=7)。其中另一个候选不成立,所以 R2C9=7 在当前假设下被迫成立;它与不同格中的 R3C9=7 互斥,因此划掉这些冲突候选。

下一个节点 R2C9 仍是双值格(R2C9=1, R2C9=7)。其中另一个候选不成立,所以 R2C9=7 在当前假设下被迫成立;它与不同格中的 R3C9=7 互斥,因此划掉这些冲突候选。
下一个节点 R2C9 仍是双值格(R2C9=1, R2C9=7)。其中另一个候选不成立,所以 R2C9=7 在当前假设下被迫成立;它与不同格中的 R3C9=7 互斥,因此划掉这些冲突候选。
步骤 17 · 推理过程

末端 R3C9 是双值格(R3C9=1, R3C9=7)。R3C9=7 不成立,所以 R3C9=1 在当前假设下被迫成立,并排除目标 R3C1=1, R3C2=1, R3C3=1。

末端 R3C9 是双值格(R3C9=1, R3C9=7)。R3C9=7 不成立,所以 R3C9=1 在当前假设下被迫成立,并排除目标 R3C1=1, R3C2=1, R3C3=1。
末端 R3C9 是双值格(R3C9=1, R3C9=7)。R3C9=7 不成立,所以 R3C9=1 在当前假设下被迫成立,并排除目标 R3C1=1, R3C2=1, R3C3=1。
步骤 18 · 撤回上一种矩形填法

撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。

撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。
撤回这个假设和由它产生的结果。恢复原候选快照,再检查下一种可能。
步骤 19 · 推理过程

假设首端 R1C3=1 在双值格 R1C3(R1C3=1, R1C3=9)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R1C3=9, R3C1=1, R3C2=1, R3C3=1。

假设首端 R1C3=1 在双值格 R1C3(R1C3=1, R1C3=9)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R1C3=9, R3C1=1, R3C2=1, R3C3=1。
假设首端 R1C3=1 在双值格 R1C3(R1C3=1, R1C3=9)中成立。它在格内排除另一个候选,并在格间排除互相可见的冲突候选 R1C3=9, R3C1=1, R3C2=1, R3C3=1。
步骤 20 · 结论

两个端点情况穷尽全部可能,并且都会划掉 R3C1=1, R3C2=1, R3C3=1。撤回临时状态后,可以删除。

两个端点情况穷尽全部可能,并且都会划掉 R3C1=1, R3C2=1, R3C3=1。撤回临时状态后,可以删除。
两个端点情况穷尽全部可能,并且都会划掉 R3C1=1, R3C2=1, R3C3=1。撤回临时状态后,可以删除。

可以得出什么

两个端点情况穷尽全部可能,并且都会划掉 R3C1=1, R3C2=1, R3C3=1。撤回临时状态后,可以删除。

XY链 · 从同时看见首尾两端的格子排除共同数字。
XY链 · 从同时看见首尾两端的格子排除共同数字。

专项练习

本课程改编自 Platon Sudoku App 的教学内容。你可以在这里读完完整实例,再到应用中继续学习和练习。

在 Google Play 查看