数独区块排除法:宫指向行列,行列再反推宫
一个数字在宫内只能落在同一行或列,能带来什么排除?分清指向数对和反向区块排除。
先确认数字被锁在交叉区域
区块排除利用宫与行、列的交集。如果某个数字在一个区域的全部候选位置都位于交集内,那么另一个区域在交集之外就不能再出现这个数字。
这里检查的是某个数字的所有位置,不是要求目标格子只剩一个或两个候选。使用前必须保证笔记完整,漏掉一个合法位置就可能让推理失效。
从宫指向行:一个具体例子
观察左上宫,也就是第 1~3 行、第 1~3 列。假设该宫的 7 只能放在 r2c1 或 r2c3,两格都在第 2 行。由于这一宫必须有 7,第 2 行的 7 就已经被锁定在左上宫里。
因此可以从 r2c4 到 r2c9 删除候选 7。我们还不能判断 r2c1 和 r2c3 究竟哪格是 7。
| 范围 | 7 的位置 | 结论 |
|---|---|---|
| 左上宫 | r2c1、r2c3 | 7 必在第 2 行 |
| 第 2 行宫外 | r2c4 … r2c9 | 删除候选 7 |
从行反推宫:前提不要弄反
换一个前提:假设整个第 2 行里,7 只能出现在 r2c1、r2c3。它们都在左上宫,所以左上宫的 7 必须位于第 2 行。此时能从该宫第 1 行和第 3 行的格子里删除候选 7。
英文中这个方向常叫 claiming 或 box-line reduction。不同教程的叫法可能不同,真正要记住的是:你完整检查了哪个来源区域,又从哪个目标区域删数。
可以是两个,也可以是三个位置
一个宫中同一数字的三个候选位置若全在一行,也能进行同样的排除,常叫指向三数。如果来源区域只剩一个位置,则直接是隐性唯一数,可以填入答案。
如果左上宫的 r3c2 也可能是 7,那么前面的指向推理就不成立,因为宫中的 7 也可能落在第 3 行。不能只看最先注意到的两格。
换成竖列练习
横行与竖列的推理完全相同。
右下宫的数字 5 只能位于 r7c8 和 r9c8。宫外哪些位置可以删除候选 5?
展开解答与理由
第 8 列的第 1~6 行都可以删除候选 5。右下宫的 5 必占第 8 列,但 r7c8 与 r9c8 谁填 5 还未确定。
删数之后先看什么
检查被删候选的格子是否变成唯一候选,再检查相关行、列、宫是否出现隐性唯一数。来源的两格即使都没解出,其他位置也可能已经被打开。
记录推理时写清数字、来源区域和排除位置。例如“左上宫的 7 被锁在第 2 行”,比只说“我看到一组数对”更容易自查。