github编辑

全强链死环的基本推理

Reasoning of Broken Loop

为了给后面的内容作铺垫,我们先介绍一个技巧。

全强链死环类型 1(Broken Loop Type 1)

全强链死环类型 1

如图所示。这是一个环路。环路里除了 r4c6 是三值格外,其他单元格均为双值格。这意味着所有单元格内部都是强链关系,除了 r4c6

如果 r4c6(3) 为假,则这个环路会形成;而且更奇特的是,环路任意相邻两个节点都是强链关系。比如我们从 2r4c6 出发,它和 2r4c7 为强链关系,接着 2r4c7 又和 3r4c7 是强链关系,这么一直下去,直到绕回 2r4c6

数一下这个环路的强链关系的数量,是 11,是一个奇数。我们之前说过,如果环路全都是强链关系的话,这意味着相邻节点必须一真一假;但环路长度是奇数又不能找到合适的填法能让环路形成真正的一真一假(始终有一对相邻节点会同真),这构成了矛盾,所以 r4c6(3) 不应为假,故 r4c6 = 3 是这个题的结论。

这个推理过程是从死环泛化推广得到的,所以这个技巧称为全强链死环(Broken Loop),由解素商(提出解鱼的那位)和我二人共同研究和取名。英文名称 broken loop 的 broken 来自于守护者技巧的别名 broken wing,暗指守护者 r4c6(3) 为假时造成死局现象。

有人问,这个同真不也满足强链不同假的逻辑吗,这哪里矛盾了?要注意的是,最终我们会得到的是相邻节点同真。相邻节点意味着他们要么同区域 + 同数,要么同一个单元格,这也能同真就出鬼了。

另外,这个技巧也分子类型。它的类型和唯一矩形那些技巧类似,所以也称呼为类型 1、2、3、4。这个是类型 1(标准类型)。

我们再来看一些例子。

全强链死环类型 1,第 2 个例子

如图所示。因为逻辑是完全一样的,所以就不重复说明了。

全强链死环类型 1,第 3 个例子

如图所示。

全强链死环类型 2(Broken Loop Type 2)

其实,这个技巧的类型 1 足以介绍以后要说的内容了,但是技巧既然都提到了,干脆我们就把他的子类型也都说一下。

全强链死环类型 2

如图所示。本题有两处“守护者”:r7c5(2)r8c4(2)。如果这两个候选数同为假的话,则图中给的奇数长度的环路会形成。因为这个环路在 r7c5(2)r8c4(2) 同假之后也是全强链的,所以必然矛盾。因此,本题的结论就是 r7c4 <> 2r8c5 <> 2

这个思路非常像是类型 2 的推理过程,所以这个子类型我们就给规划为类型 2。

我们再来看一个例子。

全强链死环类型 2,另一个例子

如图所示。这个例子也自己看了。

全强链死环类型 3(Broken Loop Type 3)

下面我们来看类型 3。

全强链死环类型 3

如图所示。这个是类型 1 里最后那个例子里的另外一个环路。

首先我们可以不难发现,r6c5(9)r6c7(1) 不同假(同假则奇数全强链环路,矛盾)。所以,这两个数至少有一个为真。而且很显然,因为 r6c9 的存在,所以这两个数还不能同真,否则 r6c9 无法填数。所以只能恰好有一个为真。

恰好有一个为真就有意思了——它会配合 r6c9 形成关于 1 和 9 的显性数对结构,因此最终的结论就是删除 r6 别处空格里的候选数 1 和 9,故这个题的结论就是 r6c3 <> 9

我们把这个情况就称为类型 3。

我们再来看一个例子。

全强链死环类型 3,另一个例子

如图所示。

全强链死环类型 4(Broken Loop Type 4)

下面我们来看最后一种类型。

全强链死环类型 4

如图所示。这次我们如果假设 r1c9(2)r2c9(8) 同为假的话,则会发现一个全强链死环造成矛盾,所以他们不能同假。不过,c1 上(或者说 b3 里)有 6 的共轭对,所以 r12c9 两个单元格又必须填一个 6 进去。所以一边是这两个“守护者”的其中一个数为真,一边是共轭对的这个 6 为真,容不下别的候选数成立,因此这个题的结论是 r1c9 <> 3r2c9 <> 2

这个就是类型 4 了。是不是很像是全双值格致死解法里的类型 4?超像的有没有。

最后更新于