链技巧(高级)

X链

总览

交推链 是非常重要的解题技巧,能帮我们在很多情况下找到突破口,是数独中级水平的必学内容。今天我们先学习其中比较简单的一种—— X链 。掌握了 X链 ,以后再学其他 交推链 技巧就容易多了。

基础概念

在学习 X链 之前,我们先要了解几个核心概念: 看见强链弱链交推链

看见

看见 (See,也可以叫 看到 )是数独中必须掌握的基本概念,讨论排除逻辑时经常会用到。

当两个格子在同一个区域时,我们就说它们可以相互 看见

看见示例

图中,格子 D3 和格子 E1 都在 宫2 里,所以它们可以相互 看见

格子 D3 和格子 I3 都在 行3 里,所以它们也可以相互 看见

而格子 E1 和格子 I3 没有共同的区域,所以它们不能相互 看见

注意:一个格子是无法 看见 自己的。

当两个假设之间存在 非 ab 的关系时,我们称之为 强链 (Strong Link)。

强链 的定义:如果 a ,那么 b ,就说从 ab 形成了 强链

记作: a = b (这里的等号不表示数学相等,也不表示满足对称性,也就是说 a = b 时不一定 b = a

我们来看标准数独中产生 强链 的两种情况。

强链示例1

图中,候选数 C4/3 到候选数 C8/3 形成了 强链 ,记作 C4/3 = C8/3

因为在 列C (蓝色区域)中,候选数 3 只出现在 C4C8 这两个格子里,所以这两个格子中至少有一个要填 3 。所以,如果 C4/3 (即 C4 不填 3 ),那么 C8/3 必须为 (即 C83 ),这符合 强链 的定义,所以得到 强链 C4/3 = C8/3

反过来也成立:候选数 C8/3 到候选数 C4/3 也形成 强链 ,记作 C8/3 = C4/3

这就是同一个区域中,一个候选数只出现在两个格子时形成 强链 的情况。

强链示例2

图中,格子 E3 (蓝色格子)里只有 29 两个候选数。这两个候选数至少有一个为 ,也就是说 E3 要么填 2 要么填 9 。如果 E3/2 (即 E3 不填 2 ),那么, E3/9 (即 E39 )。符合 强链 的定义,所以得到 强链 E3/2 = E3/9

反过来也成立:记作 E3/9 = E3/2

这是一个格子中只有两个候选数时形成 强链 的情况。

当两个假设之间存在 ab 的关系时,我们称之为 弱链 (Weak Link)。

弱链 的定义:如果 a ,那么 b ,就说从 ab 形成了 弱链

记作: a - b

我们来看标准数独中产生 弱链 的两种情况。

弱链示例1

图中,观察候选数 3宫1 (蓝色区域)的分布,格子 A1A3B3 包含候选数 3 (绿色候选数)。根据数独规则, 宫13 只能填一次,所以这 3 个候选数中只有 1 个为 。所以,如果其中任意一个候选数为 ,则另外两个候选数必须为 。符合 弱链 的定义,所以,任意两个候选数之间都能形成 弱链

图中显示的 弱链B3/3 - A1/3

这是同一个区域中,一个候选数出现在多个格子(至少2个格子)时形成 弱链 的情况。

弱链示例2

图中,格子 H5 (蓝色格子)里有 1379 四个候选数,其中只能有一个为 。如果其中任意一个候选数为 ,那么其它候选数必然为 。符合 弱链 的定义,所以任意两个候选数之间都能形成 弱链

图中显示的 弱链H5/1 - H5/9

这是一个格子中有多个候选数(至少2个候选数)时形成 弱链 的情况。

交推链

强链弱链 交替连接起来,就形成了 交替推导链 (Alternating Inference Chain,简称 交推链 ,英文 AIC )。

例子:

交推链 a = b - c = d

说明:这条链中的每个字母表示一个假设或者候选数

我们可以根据这个链条得到 强链 a = d 。怎么推理?

先假设 a

根据 强链 a = b ,如果 a ,那么 b

根据 弱链 b - c ,如果 b ,那么 c

最后根据 强链 c = d ,如果 c ,那么 d

我们从 a 推出 d ,符合 强链 定义,所以 a = d ,即从 ad 形成 强链

推广:

对于一个链条,如果第一个链和最后一个链都是 强链 ,中间强弱交替,那么我们总是可以把它看成单个 强链 ——如果第一个假设为 ,那么最后一个假设必须为

X链

X链 (X-Chain)是一种特殊的 交推链 ,它只涉及 同一个数字 。因为只关注单一数字,所以也叫 单数链 (Single Digit Chain)。

另外, X链 的首尾链接必须是 强链

一般X链

图中是一个长度为 5X链 示例,长度指的是链接的数量。

X链示例1

交推链 为: H6/9 = H5/9 - C5/9 = C7/9 - A8/9 = D8/9

根据 交推链 推理,我们可以得到 强链

H6/9 = D8/9

即如果 H6/9 ,那么 D8/9 必须为 。换句话说, H6D8 这两个格子中必然有一个填 9

所以,任何能同时看到 H6D8 的格子中的候选数 9 都可以排除,也就是 D6 中的 9 可以排除。

多宝鱼

X链 的长度为 3 时,我们称之为 多宝鱼 (Turbot Fish),这是 X链 最短的情况。

多宝鱼示例

图中的 交推链 为: H6/2 = H9/2 - A9/2 = B8/2

所以我们可以得到 强链

H6/2 = B8/2

也就是说, H6B8 这两个格子中必然有一个填 2 。因此 B6 中不可能填 2 ,因为它能同时看到 H6B8

摩天楼

多宝鱼 的两个 强链列链 (或 行链 ), 弱链行链 (或 列链 )时,我们称之为 摩天楼 (Skyscraper)。

说明

  • 行链 (Row Link)是指同一个候选数在一 内形成的链接
  • 列链 (Column Link)是指同一个候选数在一 内形成的链接
  • 宫链 (Block Link)是指同一个候选数在一个 内形成的链接。
摩天楼示例1

图中的 交推链 为: G6/7 = B6/7 - B8/7 = H8/7

可以排除 G7H5 中的 7 。推理过程相同,这里省略。

摩天楼示例2

图中的 交推链 为: C7/2 = C5/2 - F5/2 = F8/2

可以排除 E7 中的 2 ,推理过程相同,这里省略。

双线风筝

多宝鱼 中的两个 强链 一个是 行链 ,一个是 列链 ,而中间的 弱链宫链 时,我们称之为 双线风筝 (Two-String Kite)。

双线风筝示例1

图中的 交推链 为: A5/3 = A7/3 - B8/3 = G8/3

可以排除 G5 中的 3 。推理过程相同,这里省略。

双线风筝示例2

图中的 交推链 为: E3/3 = I3/3 - H1/3 = H5/3

可以排除 E5 中的 3 。推理过程相同,这里省略。

交推链1类

一般交推链1类

X链的基础上(请确保您已经掌握了 X链 ),我们可以推广技巧,形成 交推链1类

你可能已经发现,X链 能产生消除的核心是首尾候选数相同,而中间是什么不重要。所以,我们可以推广得到 交推链1类

  • 一个交推链
  • 首尾均为强链
  • 首尾候选数相同

让我们来看一个例子:

交推链1类示例1

交推链: H5/9 = I5/9 - I5/4 = F5/4 - F9/4 = F9/9

注意:和之前的 X链 不同,这个 交推链1类 的例子链接包含了不同的候选数,也有格子内的链接。

根据交推链的推理可得 强链

H5/9 = F9/9

即如果 H5/9 ,那么 F9/9 必须为 。换句话说, H5F9 这两个格子中必然有一个填 9

所以,任何能同时看到 H5F9 的格子中的候选数 9 都可以排除,也就是 H9 中的 9 可以排除。

XY链

XY链 (XY-Chain)是一种特殊的 交推链1类 ,它的强链都是只有两个候选数的格子形成的 。让我们通过一个例子来学习。

XY链示例1

交推链: F4/4 = F4/1 - C4/1 = C4/7 - C7/7 = C7/2 - G7/2 = G7/4

可以排除 G4 中的候选数 4

双数链

双数链 (Remote Pair,也叫远程数对)是一种特殊的 XY链 ,唯一的区别就是它只涉及两个候选数 。

目前尚未找到例子。

W翼

W翼 (W-Wing)是一种特殊的 交推链1类

它的特点是:

  • 首尾的强链都是只有两个候选数的格子形成的
  • 中间的链接都是同一个候选数形成的
  • 长度为5

让我们来看一个例子:

W翼示例1

交推链: B1/2 = B1/3 - D1/3 = D8/3 - F7/3 = F7/2

可以排除 F1 中的候选数 2