Sudoku Clean 素数独 logo

Sudoku Clean 素数独

技巧文档 / 隐藏矩形(Hidden Rectangle)

高级技巧

隐藏矩形(Hidden Rectangle)

建议先熟悉:唯一解 · 唯一矩形

隐藏矩形并不是一种全新的唯一性逻辑。它仍然是在阻止下面这种危险局面:

7  9       9  7
       ↔
9  7       7  9

如果两行、两列中的四个角只剩同一对数字,并且四角恰好落在两个宫里,那么左右两种填法都成立,题目就会出现第二个解。

普通唯一矩形通常一眼就能看出这对数字;隐藏矩形的部分角还混有其它候选,需要借助双值格和强链,证明某个候选一旦成立,四角就会被迫变成上面的可交换结构。

为了让推理更容易跟随,下面直接使用图片中的格子坐标来说明每一步。

1. 怎样看图?

  • 蓝色格子:矩形的四个角;
  • 绿色候选:四角共同拥有的两个核心数字;
  • 黄色候选和黄色区域:双值角与关键强链;
  • 红色候选:本次可以删除的数字。

还要记住“强链”的含义:某个数字在整行或整列中只剩两个位置,所以两处至少有一处必须填这个数字。一处被排除,另一处就一定成立。

隐藏矩形始终依赖题目只有唯一解。它不是证明红色候选违反了行、列或宫,而是证明红色候选会制造第二个完整答案。


2. Type 1:一个双值角,两条强链

隐藏矩形 Type 1

先只看四个蓝色格:r5c2、r5c3、r7c2、r7c3

  • 四角都包含数字 7/9
  • r7c2 只有 7/9,是唯一的双值角;
  • 数字 9 在第 5 行只位于 r5c2、r5c3
  • 数字 9 在第 3 列只位于 r5c3、r7c3

后两项就是经过 r5c3 的两条 9 强链。红色候选是 r5c3#7

为什么能删除 r5c3#7?

假设 r5c3=7

  1. r5c3 不能再填 9,第 5 行的强链迫使 r5c2=9
  2. 同理,第 3 列的强链迫使 r7c3=9
  3. r7c2 只有 7/9,又看见这两个 9,因此只能填 7;
  4. 四角最终只剩 7/9,并形成两套可以整体交换的填法。

这会产生第二个解,所以最初的假设不能成立:删除 r5c3#7

Type 1 可以这样找:

找到唯一的双值角 → 看它的对角格 → 检查另一个核心数字是否在该格所在的行、列各形成一条强链。

两条强链缺一不可。


3. Type 2:两个同宫双值角,一条强链

隐藏矩形 Type 2

这是最容易被代号绕晕的一型。先不推理,只认清四个角色:

  • 蓝色四角是 r5c3、r5c6、r6c3、r6c6,共同包含 7/9
  • 右侧的 r5c6、r6c6 都只有 7/9,是两个双值角;
  • 数字 7 在第 6 行只位于 r6c3、r6c6,形成一条强链;
  • 红色候选是对面蓝色角中的 r5c3#9

为什么能删除 r5c3#9?

假设 r5c3=9,沿矩形走一圈:

  1. r5c6 与它同处第 5 行,而且只有 7/9,所以 r5c6=7
  2. r6c6r5c6 同列,也只有 7/9,所以 r6c6=9
  3. r6c6 已经不是 7,第 6 行的 7 强链便迫使 r6c3=7
  4. 四角变成上面一行 9、7,下面一行 7、9,正好是可以整体交换的致命矩形。

因此 r5c3 不能填 9:删除 r5c3#9

这里最重要的是记住传播顺序:

红色候选成立 → 同边双值角确定 → 另一个双值角确定 → 强链确定最后一角 → 出现可交换矩形。


4. Type 2b:两个双值角分处两宫

隐藏矩形 Type 2b

Type 2b 与 Type 2 使用完全相同的证明。唯一差别是两个双值角位于不同的宫。

图中的四角是 r3c5、r3c6、r5c5、r5c6

  • 四角共同包含 3/7
  • r3c5、r5c5 都只有 3/7,它们同列但分处两个宫;
  • 数字 3 在第 3 行只位于 r3c5、r3c6,形成强链;
  • 红色候选是 r5c6#7

假设 r5c6=7

  1. 同行的双值角 r5c5 只能填 3;
  2. 同列的另一个双值角 r3c5 只能填 7;
  3. 第 3 行的强链迫使 r3c6=3
  4. 四角成为可以交换的 3/7 矩形。

所以可以删除 r5c6#7

“跨宫”并不会破坏这段推理。两个双值角只要仍在同一行或同一列,就能把确定结果继续传给彼此;整个矩形仍然必须恰好占据两个宫。


5. Type 2 与 Type 2b 的区别

两者的证明没有区别,分类只描述两个双值角的位置:

  • Type 2:两个双值角在同一个宫;
  • Type 2b:两个双值角在同一行或同一列,但分处两个宫。

同一个矩形有时存在两条不同的有效强链,因此能分别证明两个删数。每个删数都必须拥有一条完整的“红色候选 → 两个双值角 → 强链 → 致命矩形”路径。应用会一次展示其中一项。


6. 检查清单

找到疑似结构后,按下面顺序核对:

  1. 四个未填格是否位于两行、两列,并且恰好跨两个宫?
  2. 四角是否都包含同一对核心数字?
  3. Type 1 是否恰好有一个双值角,并具备所需的两条强链?
  4. Type 2/2b 是否有两个相邻的双值角,而不是两个对角格?
  5. 所谓强链所在的整行或整列中,是否真的只有两个该数字的候选?
  6. 候选是否已经补全?

最容易犯的错误,是只看矩形四角便认定存在强链。如果同一行或列的其它位置还有第三个相同候选,黄色两端就不能互相强制,整段证明也随之失效。