XY-Wing 及推广的基本推理

Reasoning of Regular Wing

XY-Wing

XY-Wing

如图所示。我们把注意力集中到 r8c5 之上。这个单元格只有两个候选数:7 和 9。我们不妨根据所填的数字进行讨论:

  • 如果 r8c5 = 7,则同列的 r1c5 = 1

  • 如果 r8c5 = 9,则同宫的 r9c4 = 1

由于 r8c5 必须填的是这两个的其中一个,所以 r1c5r9c4 里肯定会有至少一个位置填的是 1。

这能说明什么呢?r1c4r9c5 这两处单元格比较特殊。这两个单元格刚好既和 r1c5 同一个区域,也和 r9c4 同一个区域。我们倒过来看,如果说我们让 r1c4r9c5 的任意一个格子填上 1,就会同时让刚才我们提到的 r1c5r9c4 都无法填上 1。

但是,这显然是不行的。我们刚才才得到这两个单元格必须至少有一个 1。所以,这便出现了矛盾。所以,根据前面的两种情况的假设,我们就直接可以得到结论 {r1c4, r9c5} <> 1

我们把这个推理过程称为 XY-Wing

我们再来看一个例子。

另外一个 XY-Wing

这个例子和前面几乎一样,所以希望你自己推理它。

XYZ-Wing

XYZ-Wing

如图所示。这个技巧其实就比刚才的 XY-Wing 多了一个候选数。

和前面的方式一样,我们这次讨论的是 r3c2 的填数情况。

  • 如果 r3c2 = 4,则同列的 r7c2 = 1

  • 如果 r3c2 = 9,则同行(或者说同宫)的 r3c1 = 1

  • r3c2 = 1

这意味着,r3c2r3c1r7c2 里肯定会有至少一个单元格填的是 1。

那么这一次又有什么单元格可以得到删数结论呢?r1c2 了。如果它填上 1,就会同时让刚才所说的三个单元格全部不能填 1,直接产生矛盾。

所以,r1c2 <> 1 是这个题的结论。

我们把这个结构(XY-Wing 上多了一个候选数)称为 XYZ-Wing

我们再来看一个题。

另一个 XYZ-Wing

这个例子也希望你自己理解。

WXYZ-Wing

前面我们看过了 XYZ-Wing,是 XY-Wing 上增加了一个候选数得到的新结构。这次,我们再往上加一个格子。看看四个单元格能不能也能这样用。

WXYZ-Wing

如图所示。这次我们假设的是 r2c2 这个单元格。

  • 如果 r2c2 = 2,则旁边的 r2c3 = 3

  • 如果 r2c2 = 5,则同宫的 r3c1 = 3

  • 如果 r2c2 = 9,则同列的 r7c2 = 3

  • r2c2 = 3

那么可以发现,这次是整整四个单元格里至少有一个填 3。

和前面一样,我们仍然能找到一个删数单元格。如果 r1c2 = 3,则会同时使得四个单元格都不能填 3,满足不了至少一个填 3 的结论,于是就矛盾了。

所以,这个题目的结论是 r1c2 <> 3

我们把这个技巧称为 WXYZ-Wing

我们再来看一个例子。

另一个 WXYZ-Wing

如图所示。这个例子希望你能自己推理一下。

VWXYZ-Wing

看得出来,老外已经词穷了。它尝试在往字母表里一个一个字母往上加就成为了一个新的技巧名。用到 Z 之后发现已经没有字母了,又开始往前面找。

既然 WXYZ-Wing 已经过了,下面就再加一个单元格,就成了新的技巧了:VWXYZ-Wing

VWXYZ-Wing

如图所示。虽然推理完全和前面的一样,但是我还是解释一下。这次我们要假设的是 r6c4 的填数情况:

  • 如果 r6c4 = 4,则同行的 r6c7 = 1

  • 如果 r6c4 = 7,则同行的 r6c3 = 1

  • 如果 r6c4 = 8,则同宫(或者说同列)的 r5c4 = 1

  • 如果 r6c4 = 9,则同宫的 r4c6 = 1

  • r6c4 = 1

我们发现,这个例子里,仍然有删数结论。假设 r6c6 = 1 的话,则会同时使得前面假设的 5 个单元格全部没办法填 1。所以,结论就是 r6c6 <> 1 了。

我们再来看一则例子。

另一个 VWXYZ-Wing

也是一样,这个例子就给你自己推理了。

这种技巧的规格

可以通过技巧看出,它其实就是逐渐在扩展结构的规格,也就是使用的单元格数量。当然,除了 XY-Wing 变为 XYZ-Wing 的时候只是加了一个候选数而已。这个是名称的历史由来的问题。这我们一会儿说。

这个技巧的极限情况是多少呢?理论来说,这个技巧应该最大可以到 9 个单元格。但是因为越大的规格的这个结构,形成条件也就会越苛刻(毕竟有一个单元格需要有和单元格数量一样多的候选数数量),所以这只是个理论数值。

现在能够从题目里找到的最大规格是 5,即上面的 VWXYZ-Wing 就已经是最大的情况了。

另外,名称的话也是随着单元格数量变化的。和 WXYZ-Wing 以及 VWXYZ-Wing 一样,再大点,字母就会再多一些。所以不难想到后面的名字都是什么:

  • 6 个单元格:UVWXYZ-Wing

  • 7 个单元格:TUVWXYZ-Wing

  • 8 个单元格:STUVWXYZ-Wing

  • 9 个单元格:RSTUVWXYZ-Wing

不得不说,这个技巧的取名真的省事。

历史由来

现在我们来说说为什么这个规格的命名并不是严格遵守的。

可以发现,XY-Wing 到 XYZ-Wing 并没有按多一个单元格方式在推广。相反,XY-Wing 只有两个字母,却上手就用了三个单元格。这个神奇的情况也占用了一个技巧名。

这个的原因是来自于这个技巧的来源。看前面的 XY-Wing 似乎我们看不太出来它的来源。但是如果你把宫内的两个单元格强行移动到行列上去,让这个结构的两个分支“垂直”,你就会发现,它长得很像是二阶鱼的“异数”版本。

二阶鱼是假设出两种填数情况,在排列的时候形成交叉填入的 X 字母形状。而 XY-Wing 在假设的时候,也是随其中一个位置开始假设两种填数,并最终影响到两端的填数。二阶鱼的删数是两个完整的行列;而 XY-Wing 的删数,则也取决于两端填数的影响的范围。

所以,XY-Wing 这个技巧的名字其实是来自二阶鱼的。回忆一下,二阶鱼的英文是什么?X-Wing。所以,不难想到,XY-Wing 就是因为用到了两个数字的假设,因此把 X 改成了 XY。

在之前的历史里,我们说到,X-Wing 的 X 并不是未知数,而是一架飞机的代号。但是,推广到 XY-Wing 时,X 被当成了未知数。换言之,二阶鱼确实用到的是一个数字内部的填数关系,所以 X 也可以理所应当地理解为一个数字。而 XY-Wing 则为两个数字的假设关系,因此 XY-Wing 就这么得来的。

而 XYZ-Wing 以及后面的名称,则是发现 XY-Wing 并不是“完整”的。所谓完整的,可以看到,从 XYZ-Wing 技巧开始,后面所有的结构,假设的单元格本身都带有和单元格总数量一样多的候选数数量。但是 XY-Wing 不是。XY-Wing 刚好少一个。少一个什么呢?少一个 XYZ-Wing 里的那个“Z”,也就是那个删的数字。

所以,再补全后,刚好因为 XYZ-Wing 用到三个字母就补齐了命名上字母的使用情况,因此,后面的技巧名也就随单元格数量直接加字母就行了。几个格子就用几个字母,然后从 Z 字母开始,从后往前数相同数量的字母,然后拼上 -Wing 就是这个技巧的名字了。

最后更新于