链技巧(高级)
X链
总览
交推链 是非常重要的解题技巧,能帮我们在很多情况下找到突破口,是数独中级水平的必学内容。今天我们先学习其中比较简单的一种—— X链 。掌握了 X链 ,以后再学其他 交推链 技巧就容易多了。
基础概念
在学习 X链 之前,我们先要了解几个核心概念: 看见 、 强链 、 弱链 和 交推链 。
看见
看见 (See,也可以叫 看到 )是数独中必须掌握的基本概念,讨论排除逻辑时经常会用到。
当两个格子在同一个区域时,我们就说它们可以相互 看见 。
图中,格子 D3 和格子 E1 都在 宫2 里,所以它们可以相互 看见 。
格子 D3 和格子 I3 都在 行3 里,所以它们也可以相互 看见 。
而格子 E1 和格子 I3 没有共同的区域,所以它们不能相互 看见 。
注意:一个格子是无法 看见 自己的。
强链
当两个假设之间存在 非 a 即 b 的关系时,我们称之为 强链 (Strong Link)。
强链 的定义:如果 a 为 假 ,那么 b 为 真 ,就说从 a 到 b 形成了 强链 。
记作: a = b (这里的等号不表示数学相等,也不表示满足对称性,也就是说 a = b 时不一定 b = a )
我们来看标准数独中产生 强链 的两种情况。
图中,候选数 C4/3 到候选数 C8/3 形成了 强链 ,记作 C4/3 = C8/3 。
因为在 列C (蓝色区域)中,候选数 3 只出现在 C4 和 C8 这两个格子里,所以这两个格子中至少有一个要填 3 。所以,如果 C4/3 为 假 (即 C4 不填 3 ),那么 C8/3 必须为 真 (即 C8 填 3 ),这符合 强链 的定义,所以得到 强链 C4/3 = C8/3 。
反过来也成立:候选数 C8/3 到候选数 C4/3 也形成 强链 ,记作 C8/3 = C4/3 。
这就是同一个区域中,一个候选数只出现在两个格子时形成 强链 的情况。
图中,格子 E3 (蓝色格子)里只有 2 和 9 两个候选数。这两个候选数至少有一个为 真 ,也就是说 E3 要么填 2 要么填 9 。如果 E3/2 为 假 (即 E3 不填 2 ),那么, E3/9 为 真 (即 E3 填 9 )。符合 强链 的定义,所以得到 强链 E3/2 = E3/9 。
反过来也成立:记作 E3/9 = E3/2 。
这是一个格子中只有两个候选数时形成 强链 的情况。
弱链
当两个假设之间存在 a 为 真 则 b 为 假 的关系时,我们称之为 弱链 (Weak Link)。
弱链 的定义:如果 a 为 真 ,那么 b 为 假 ,就说从 a 到 b 形成了 弱链 。
记作: a - b
我们来看标准数独中产生 弱链 的两种情况。
图中,观察候选数 3 在 宫1 (蓝色区域)的分布,格子 A1 、 A3 和 B3 包含候选数 3 (绿色候选数)。根据数独规则, 宫1 中 3 只能填一次,所以这 3 个候选数中只有 1 个为 真 。所以,如果其中任意一个候选数为 真 ,则另外两个候选数必须为 假 。符合 弱链 的定义,所以,任意两个候选数之间都能形成 弱链 。
图中显示的 弱链 为 B3/3 - A1/3 。
这是同一个区域中,一个候选数出现在多个格子(至少2个格子)时形成 弱链 的情况。
图中,格子 H5 (蓝色格子)里有 1 、 3 、 7 、 9 四个候选数,其中只能有一个为 真 。如果其中任意一个候选数为 真 ,那么其它候选数必然为 假 。符合 弱链 的定义,所以任意两个候选数之间都能形成 弱链 。
图中显示的 弱链 为 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 ,即从 a 到 d 形成 强链 。
推广:
对于一个链条,如果第一个链和最后一个链都是 强链 ,中间强弱交替,那么我们总是可以把它看成单个 强链 ——如果第一个假设为 假 ,那么最后一个假设必须为 真 。
X链
X链 (X-Chain)是一种特殊的 交推链 ,它只涉及 同一个数字 。因为只关注单一数字,所以也叫 单数链 (Single Digit Chain)。
另外, X链 的首尾链接必须是 强链 。
一般X链
图中是一个长度为 5 的 X链 示例,长度指的是链接的数量。
交推链 为: H6/9 = H5/9 - C5/9 = C7/9 - A8/9 = D8/9
根据 交推链 推理,我们可以得到 强链 :
H6/9 = D8/9
即如果 H6/9 为 假 ,那么 D8/9 必须为 真 。换句话说, H6 和 D8 这两个格子中必然有一个填 9 。
所以,任何能同时看到 H6 和 D8 的格子中的候选数 9 都可以排除,也就是 D6 中的 9 可以排除。
多宝鱼
当 X链 的长度为 3 时,我们称之为 多宝鱼 (Turbot Fish),这是 X链 最短的情况。
图中的 交推链 为: H6/2 = H9/2 - A9/2 = B8/2
所以我们可以得到 强链 :
H6/2 = B8/2
也就是说, H6 和 B8 这两个格子中必然有一个填 2 。因此 B6 中不可能填 2 ,因为它能同时看到 H6 和 B8 。
摩天楼
当 多宝鱼 的两个 强链 是 列链 (或 行链 ), 弱链 是 行链 (或 列链 )时,我们称之为 摩天楼 (Skyscraper)。
说明 :
- 行链 (Row Link)是指同一个候选数在一 行 内形成的链接
- 列链 (Column Link)是指同一个候选数在一 列 内形成的链接
- 宫链 (Block Link)是指同一个候选数在一个 宫 内形成的链接。
图中的 交推链 为: G6/7 = B6/7 - B8/7 = H8/7
可以排除 G7 和 H5 中的 7 。推理过程相同,这里省略。
图中的 交推链 为: C7/2 = C5/2 - F5/2 = F8/2
可以排除 E7 中的 2 ,推理过程相同,这里省略。
双线风筝
当 多宝鱼 中的两个 强链 一个是 行链 ,一个是 列链 ,而中间的 弱链 为 宫链 时,我们称之为 双线风筝 (Two-String Kite)。
图中的 交推链 为: A5/3 = A7/3 - B8/3 = G8/3
可以排除 G5 中的 3 。推理过程相同,这里省略。
图中的 交推链 为: E3/3 = I3/3 - H1/3 = H5/3
可以排除 E5 中的 3 。推理过程相同,这里省略。
交推链1类
一般交推链1类
在X链的基础上(请确保您已经掌握了 X链 ),我们可以推广技巧,形成 交推链1类 。
你可能已经发现,X链 能产生消除的核心是首尾候选数相同,而中间是什么不重要。所以,我们可以推广得到 交推链1类 :
- 一个交推链
- 首尾均为强链
- 首尾候选数相同
让我们来看一个例子:
交推链: H5/9 = I5/9 - I5/4 = F5/4 - F9/4 = F9/9
注意:和之前的 X链 不同,这个 交推链1类 的例子链接包含了不同的候选数,也有格子内的链接。
根据交推链的推理可得 强链 :
H5/9 = F9/9
即如果 H5/9 为 假 ,那么 F9/9 必须为 真 。换句话说, H5 和 F9 这两个格子中必然有一个填 9 。
所以,任何能同时看到 H5 和 F9 的格子中的候选数 9 都可以排除,也就是 H9 中的 9 可以排除。
XY链
XY链 (XY-Chain)是一种特殊的 交推链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
让我们来看一个例子:
交推链: B1/2 = B1/3 - D1/3 = D8/3 - F7/3 = F7/2
可以排除 F1 中的候选数 2 。