掌握 Sudoku 链,破解高难度谜题

Sudoku 链是一串由强关系和弱关系连接起来的候选数,用来展示一个候选数为真或为假会如何影响另一个候选数。沿着这些关系推理,可以发现仅查看单个格子时并不明显的删数或填数。构建和解读 Sudoku 链并不是一种单一策略,而是来自多种不同的高级技巧,从 X 环强制链都有。

大多数链都依靠强链和弱链来连接候选数。

  • 强链表示:如果一个候选数为假,另一个就必须为真。常见例子是共轭对,也就是某个候选数在某一行、列或宫内只有两个可能位置。
  • 弱链表示:如果一个候选数为真,另一个就必须为假。

通过连接这些关系,你可以在各个单位之间,甚至整个盘面中构建链,帮助你删除候选数或确定填数。当基础解题策略不足以破解一道 Sudoku 谜题时,本文会帮助你理解,在你在线玩 Sudoku时,链如何揭示逻辑联系。

如何在 Sudoku 中寻找链

寻找链,就是沿着候选数之间的强弱关系进行推理,把一个逻辑推断从 Sudoku 盘面的一处传递到另一处。链可以涉及同一个数字,也可以涉及不同数字;链接可以出现在同一个格子内,也可以出现在不同格子之间。每种链都有自己的构建方式,而最基础的链——X 链——可以按以下步骤构建:

  1. 先寻找一条强链,例如共轭对,或同一个双值格中的两个候选数。当两个候选数中至少有一个必须为真时,它们之间就形成强链。例如,I7 和 I8 对候选数 5 构成强链,因为它们是 I 列中仅有的两个包含 5 的格子。所以如果 I7 不是 5,I8 就必须是 5;如果 I8 不是 5,I7 就必须是 5。
  2. 把强链连接到一条弱链。弱链连接的是两个不能同时为真的候选数。例如,I8 和 F8 都在同一行(第 8 行)包含候选数 5,因此它们不能同时是 5。不过,因为该行还有其他 5,所以这种关系是弱链,而不是强链。
  3. 继续寻找链接,在强链和弱链之间交替。从弱链出发,寻找另一条能够继续推理的强链。例如,F8 和 F3 都有候选数 5,而且它们是 F 列中仅有的两个包含该候选数的格子,因此形成强链。如果 F8 不是 5,F3 就必须是 5;如果 F3 不是 5,F8 就必须是 5。
  4. 如果可能,找出填数和/或进行删数。并不是你找到的每条链都会带来填数或候选数删除,每种链也都有自己的逻辑。例如,由于这条链的每个节点都涉及同一个候选数,并且链接按强/弱交替,因此它是一条 X 链,属于交替推理链(AIC)的一种。这条链证明两个端点 I7 或 F3 中至少有一个必须是 5。于是你可以删除任何同时看到这两个端点的 5。在这个例子中,I3 同时看到 I7 和 F3,所以可以从该格删除 5。
如何寻找 Sudoku 链示例

请记住:使用链时,你并不总是能同时删除候选数并确定填数。有时你可能只是删除一个候选数(或多个候选数)。有时你可能能够确定一个填数,或者既删除候选数又确定填数。不过,也会有一些时候,链不会给出任何删数或填数。这没关系。链提供的是信息。因此,即使你暂时无法使用这些信息,也可能在后续解题过程中需要用到它。

Sudoku 链的示例

Sudoku 链大体可以分为两类,每一类都有自己的逻辑结构。这两类链的关键区别在于你如何追踪逻辑。交替推理链(AIC)是在盘面中追踪交替出现的强推理和弱推理,而强制链则从一个可能的条件开始,追踪该条件会强制推出什么结果。不同的链方法有时也能揭示同一个底层推论。

交替推理链(AIC)

交替推理链遵循强推理和弱推理的交替。

X 链

X 链是一种交替推理链(AIC),其中每个节点都代表同一个候选数。它与许多其他 AIC 的区别在于,当链在强链和弱链之间交替时,数字始终不变。

前一节中的例子就是一条 X 链。寻找 X 链的方法如下:

  1. 先寻找一条强链。例如,E3 和 F3 对候选数 4 构成强链,因为它们是该行中仅有的两个包含 4 的格子。所以如果 E3 不是 4,F3 就必须是 4;如果 F3 不是 4,E3 就必须是 4。
  2. 把强链连接到一条弱链。例如,F3 和 F5 都在同一列包含候选数 4,因此它们不能同时是 4。不过,因为该列还有其他 4,所以这种关系是弱链,而不是强链。
  3. 继续寻找链接,在强链和弱链之间交替。例如,F5 和 I5 都有候选数 4,而且它们是第 5 行中仅有的两个包含该候选数的格子。如果 F5 不是 4,I5 就必须是 4;如果 I5 不是 4,F5 就必须是 4。
  4. 如果可能,找出填数和/或进行删数。例如,这条链证明两个端点 E3 或 I5 中至少有一个必须是 4。于是你可以删除任何与两个端点同时共享一行、一列或一个 3x3 宫的 4。在这个例子中,无法进行删数。不过,有了这条信息之后,如果之后确定 E3 不是 4,这条链就告诉你 I5 必须是 4。随着谜题推进,请记住这条链,以便日后需要时使用这些信息。
Sudoku X 链示例

XY 链

XY 链是一串双值格组成的链,也就是说每个格子恰好包含两个候选数,而这两个候选数在格子内部形成强链。与始终沿着同一个候选数推进的 X 链不同,XY 链在从一个格子移动到另一个格子时会更换候选数。每个格子都与下一个格子共享一个候选数,从而在格子之间形成弱链;你需要构建这条链,使起始节点和结束节点上的候选数相同。

寻找 XY 链的方法如下:

  1. 从一个双值格开始,并选择一个端点候选数。例如,A2 只包含候选数 7 和 9。你可以从任一候选数开始,寻找另一个能看到 A2 且与它共享一个候选数的双值格。如果你把 9 作为一个端点,那么另一个候选数 7 就为你提供了延伸链的可能方式。
  2. 寻找另一个能看到第一个格子,并包含它另一个候选数的双值格。A4 能看到 A2,并且包含候选数 7。两个 7 在格子之间形成弱链,而 2 和 7 在 A4 内部形成强链。现在你可以继续寻找另一个包含 2 的双值格。
  3. 继续在格子之间的弱链和格子内部的强链之间交替。A4(2,7)连接到 F4(2,4);F4 连接到 F3(4,5);F3 连接到 H3(5,9)。当你到达一个双值格,并且它的另一个候选数与你最初的端点候选数相同,就停止。这里,H3 包含 5 和 9,把链带回到候选数 9。
  4. 寻找能同时看到两个端点、可以删除的候选数。这条链以候选数 9 开始并结束,证明 A2 或 H3 中至少有一个必须是 9。因此,任何其他能同时看到两个端点的候选数 9 都可以被删除。在这道题中,H2 通过第 2 行看到 A2,并通过 H 列看到 H3,所以可以从 H2 删除 9。I2 也通过第 2 行看到 A2,并通过它们共享的 3x3 宫看到 H3,所以可以从 I2 删除 9。因为这条链以强链开始并以强链结束,所以两个端点 A2 或 H3 中至少有一个必须是 9。因此,任何其他能同时看到 A2 和 H3 的候选数 9 都可以被删除。在这道题中,这会从 H2 和 I2 删除 9。
Sudoku XY 链示例

X 环

X 环是一种交替推理链(AIC),它沿着同一个候选数,通过强链和弱链构成的闭合循环进行追踪。和 X 链一样,整个过程中数字保持不变;但它不是有两个端点,而是最终连接回起点。完成后的环中强链和弱链的排列方式,决定了你能否进行删数或填数。

这类链有两条删数规则。可以用这个例子寻找一条符合规则 1 的 X 环;关于规则 2 的更多细节,请参考我们的 X 环文章

  1. 从一个具有强链的候选数开始。例如,5 在 I5 和 I6 之间具有强链,因为它们是 I 列中仅有的两个包含候选数 5 的格子。
  2. 沿着同一个候选数,交替追踪强链和弱链。候选数 5 在 I6 和 B6 之间形成弱链,因为这两个格子共享第 6 行,不能同时包含 5。接着,5 又与 B5 形成强链,因为它们是 B 列中 5 的仅有两个可能位置。
  3. 继续,直到链闭合成环。B5 在第 5 行看到 I5,把链带回起点。这两个候选数实际上也是第 5 行中仅有的两个可能的 5,因此它们之间的关系既是强链也是弱链。这里,可以利用该链接的弱方向来完成交替环。
  4. 利用完成的环进行推论。在这个连续 X 环中,B6 和 I6 之间针对 5 的弱链两侧都是强链,这意味着这两个候选数中必有一个为真。因此,任何其他能同时看到它们的候选数 5 都可以被删除。H6 能同时看到它们,因为它在同一行,所以你可以从 H6 删除 5,然后在 H6 填入 2。
Sudoku X 环示例

强制链

与遵循明确强链和弱链模式的交替推理链不同,强制链从一个可能的数值或条件开始,并追踪随之产生的逻辑后果。如果不同的可能性都导向同一个结论,那么无论哪种可能性正确,该结论都必定为真。例如,A2 只包含候选数 7 和 9,因此你可以测试这两种可能,并追踪每一种会强制推出什么。

寻找并使用强制链的方法如下:

  1. 选择一个可能性数量有限的候选数或格子。例如,H1 只包含 2 和 6,因此你有两个可能的起始条件:H1 要么是 2,要么是 6。
  2. 追踪第一种可能性的后果。如果 H1 是 2,那么第 1 行中没有其他格子可以是 2。这意味着可以删除 E1、F1 和 G1 中的 2,并强制得到以下填数:
    1. H1:2
    2. G1:6
    3. F1:8
    4. E1:7
    5. E3:4
  3. 回到起点,并追踪另一种可能性。如果 H1 是 6,那么该行中没有其他格子可以是 6,这会强制得到以下填数:
    1. H1:6
    2. G1:2
    3. F1:8
    4. E1:7
    5. E3:4
  4. 寻找两条路径共享的结论。无论 H1 包含 2 还是 6,F1、E1 和 E3 这几个格子的结果都相同。因此,你可以在 F1 填入 8,在 E1 填入 7,并在 E3 填入 4。
Sudoku 强制链示例

链通常用于困难专家级谜题,尤其是在前面的技巧已经缩小候选数范围之后。使用候选数模式可以帮助你突出其中一些强链和弱链,这样下次你在线玩 Sudoku时,就能更有效地使用链。