grid_on

Sudoku Clean 素数独

技巧文档 / 链的基础

链的基础

强链 / 弱链 / 强弱交替(AIC)

高阶

链的基础

强链 / 弱链 / 强弱交替(AIC)

链(Chain)是很多高级技巧的共同基础。
它做的事情很简单:把候选数之间的关系串成一句句 “如果…那么…”,让推理可以跨越多个行 / 列 / 宫。

读完这一章,你会更容易看懂后面的单数链、风筝、摩天楼、美杜莎、AIC 等提示。

我们用 r1c1 表示格子位置:
r 是行(row),c 是列(column)。

为了方便阅读,图片里会用这些标记:

  • 绿色实线:强链(Strong link)
  • 黄色虚线:弱链(Weak link)
  • 蓝色/黄色候选背景:把链分成两种“互斥的状态”,读真假更直观
  • 红色候选:这一步要删除的候选

小提醒:链本身是双向的,箭头只是为了让你更容易看清楚从哪里开始读。


什么是链?

简单来说,链就是把候选数之间的关系连起来,让你能持续做“如果…那么…”的推理:

如果 A 不成立,那么 B 就必须成立;
如果 B 成立,那么 C 就不能成立;
……

一条链通常由两部分组成:

  • 节点:某个格子里的某个候选数
  • 连接:节点之间的关系(强链 / 弱链)

链本身不一定“最后一定删哪一个数”。它更像一条推理通道:

  • 推到 矛盾:就能证明某个候选不可能成立 → 删除它
  • 推到 被迫成立:也可能证明某个候选必须成立 → 确定一个数

这篇先只讲最常见的“单数链”:围绕同一个数字 d 的候选来推理。
(双值格的关系、以及由多个格子组成的“区域强链”,我们后面再展开。)


强链和弱链

强链(Strong link)

口诀:二选一,非此即彼。

当在同一个区域(行 / 列 / 宫)里,某个数字 d 只剩下 两个候选位置时,这两个候选之间就构成强链(也叫“共轭对”)。

它最关键的逻辑含义是“反向必然”:

  • 如果 A 不是 d,那么 B 必须是 d(If NOT A, then B)
  • 如果 B 不是 d,那么 A 必须是 d

先看下图:三个强链示意

强链示意

上图里数字 5 在某些行/列/宫中都只剩两个位置,所以用绿色实线把它们连起来。
你从任意一端开始读都成立:链是双向的,箭头只是阅读辅助。

重要补充:强链一定也是弱链
因为它们在同一行/列/宫里,同一个数字不可能出现两次,所以:

  • 如果 A 是 d,那么 B 就不是 d(If A, then NOT B)

一句话记住就行:

强链 = “互斥(弱链)” + “二选一必有其一为真”

弱链(Weak link)

口诀:见面即排斥,有你没我。

弱链只表达一件事:

两个候选不能同时为真。

在“单数链”里,最常见的弱链就是:同一个数字 d 的两个候选在同一行/列/宫里互相“看见”。
它的逻辑含义是:

  • 如果 A 为真,那么 B 必为假(If A, then NOT B)

但注意它不能反过来用:

  • 如果 A 为假,不能推出 B 一定为真(因为可能还有第三个位置)

先看下图:弱链示意

弱链示意

上图同一行里,数字 5 有 3 个候选位置。它们两两之间都是弱链。
图里只画出一条黄色虚线,是为了示意“弱链长什么样”。


链是如何运作的?

想把推理“沿着链走下去”,你只需要记住两条非常直观的传导规则:

  1. 真 →(弱链)→ 假
    弱链是互斥:A 成立,B 就必须排除。

  2. 假 →(强链)→ 真
    强链是二选一:A 不成立,B 就被迫成立。

所以一条能一直传下去的链,通常会长成强弱交替的样子:

假 —(强)→ 真 —(弱)→ 假 —(强)→ 真 —(弱)→ 假 …

为什么要交替?

  • 弱-弱 连不动:A 为假时,弱链推不出 B 的真假,推理会断掉
  • 强-强 虽然能连:但在很多题里往往意味着更简单的结构也能看出来(所以链更常用来“强弱交替地传导”)

例子

先看下图:蓝色背景标出了链的起点,绿色实线/黄色虚线表示强/弱关系交替。
红色候选是这一手要删除的 r2c7 中的候选数字 9

链式推理示例

读法可以这样理解:

  1. 先看蓝色起点:只要 r2c2 不是 9,沿着链就会“传导”到 r9c7 必须是 9
    (你会在链上看到很整齐的“假→真→假→真→假→真”交替)

  2. 现在做一个反证:假设红色候选 r2c7 中的 9 为真

    • 因为 r2c7 和 r2c2 在同一行,r2c2 就不能是 9(也就是:r2c2 的 9 为假)
    • 于是链把这个“假”一路传下去,得到 r9c7 的 9 为真
    • 可 r2c7 和 r9c7 在同一列,不可能同时为 9 —— 矛盾

所以结论是:

r2c7 不可能是 9,因此 r2c7 中的候选数字 9 可以删除。


练习

下面三张图都是单数链,我已经把链画出来了。
你可以慢慢看,不用急着一次看懂。

三个小问题帮助你练习:

  1. 哪些段是强链?它们为什么是“二选一”?
  2. 哪些段是弱链?它们为什么互斥?
  3. 红色候选为什么会走到矛盾?

单数链案例 1

单数链案例 2

单数链案例 3

如果你一开始觉得绕,这是很正常的。
这就是链:它是很多高级技巧的基础,在学习更高级的技巧前先学会它吧。