欠一数组(ALC)

Almost Locked Candidates

下面我们将进入新的技巧的学习。前面我们一连学习了五种不同的致命结构技巧(利用唯一解的技巧),我们休息休息,将推理逻辑回归到普通的矛盾上去。

标准类型

欠一数对(Almost Locked Pair)

欠一数对

如图所示。请注意图中 r7b8 两个区域。

我们发现,在 r7 里,数字 1 和 6 整体只能填入到 r7c345 三个单元格里;而其中的 r7c45 均位于 b8 里。那么我们不妨作出这样的假设。我们发现,r9c6 这个单元格只要填入了一个数,不论是哪个数,因为都是 1 或 6 的关系,那么 r7c45 都无法填入这个数字。而因为 r7 上必须填入一个 1 和一个 6,所以 r7c345 三个单元格的其中两个单元格都需要被 1 或 6 所占据。

而且,由于 r7c45 里 1 或 6 的其中有一个数会填不进去的关系,那么我们只能知道的是,r7c3 必须承担起填入 1 或 6 的责任,以确保 r7c45 只用再填一个数,结构就可以“稳定”下来了。所以,r7c3 必须是 1 或 6 的其一。那么结论就是 r7c3 <> 29……吗?

别急。别着急下结论。刚才我们说到,r7c3 必须是一个 1 或 6 的其中一个数(假设我用字母 aa 来表示),而 r7c45 只能拿出其中一个单元格填一个数(假设用字母 bb 来表示),这是不是很像是之前比如说唯一矩形类型 3 里的那种摆放状态?

因为 aabb 此时均是 1 或 6 里的数(而且 aba \neq b),所以,按道理来说,r7r7c345 会有其中两个单元格形成关于 1 和 6 的隐性数对;而借用这一点,将视角回溯到 r9c6,我们还能发现神奇的现象。因为 r7c45 只能填一个 bb,所以 r9c6 只有 1 或 6 的话,那岂不是它只能填 aa?是的,我们甚至还可以更进一步地得到,r7c3 = r9c6 这个填数关系。当然,这个填数关系似乎没有什么好用的结论(最多也就影响你后续填入了其中一个单元格后,立马可以把这个数填在另外一个单元格上)。不过,我们主要想得出的是 r9c6aa 的结论。因为这样一来,b8 也会有一个数对,一个显性数对,用的是 r7c45r9c6 的其中两个单元格。所以,b8 里的其余单元格都不能填入 1 或 6。所以,这个题的结论是 {r8c456, r9c4} <> 16r7c3 <> 29

我们把这种用到一个行/列和一个宫的组合,并带有一边显性数组一边隐性数组的这种特殊结构称为欠一数组(Almost Locked Candidates,简称 ALC)。图上这个例子是欠一数组的最低规格的情况,因为是数对,所以叫欠一数对(Almost Locked Pair,简称 ALP)。

这里要稍微注意一下的是,在英文名里,欠一数组这个技巧的英文名用的单词是 Locked Candidates,即区块,而并不是数组,这是因为国外的数独圈子里,他们更倾向于将这个技巧结构看作是区块的延伸(如不看 r7c3 的话,数字 6 就称为了区块,并会影响到 r9c6 的填数,比较符合区块的长相和推理过程)。而我们这边的圈子更看重假设成 aabb 参与讨论的情况,所以更符合数组一些。不过这都不是很重要,搞清楚结构的长相,叫什么都行。

下面我们再来看一个欠一数对的例子,用于巩固,以便你能理解它。

欠一数对,另外一个例子

如图所示。这个例子就自己看一下了。

欠一三数组(Almost Locked Triple)

下面我们来看三数组的情况。

欠一三数组

如图所示。这次我们把视角切换到 r6b6 上。

可以看到,b6 里有 r4c8r5c7r6c78 一共四个单元格可以填入 1、5、6,其中 r6c78 还位于 r6 上。

和之前假设一样,我们还是从显性这边开始。由于 r6c12 里只能是 1、5、6 的其中两种数字,所以我们不妨假设他们为 aabb,那么为了确保 b6 能够正常摆放下 1、5、6 三种数字,我们只能让 r6c78 的其中一个单元格填入 cc(此时 abcabc 均是 1、5、6 里的数,且互相都不相等)。

于是,由于 r6c78 只有一个单元格填 1、5、6 的其中一个数,所以 r6c1278 的其中三个单元格将会构成显性三数组,而 r4c8r5c7r6c78 的其中三个单元格将构成隐性三数组。这里要稍微注意一下,由于我们无法确定 r6c78 的其中哪一个单元格是 1、5、6,所以删数结论并不会在这两个单元格里产生,毕竟这并不确定。

所以,这个题的结论就是 r4c8 <> 3r5c7 <> 4r6c46 <> 56。其实按理说 r6c46(1) 也能删,但是这候选数不存在是因为这个盘面状态之前,已经有 1 的区块(r4)把它给干掉了。

我们把这个带三数组的状态,称为欠一三数组(Almost Locked Triple,简称 ALT)。

下面我们还是老规矩,再看一个例子。

欠一三数组,另一个例子

如图所示。这个题也自己看。要注意的是,这个题长得比较简单,但是并不影响推理。

带有明数的类型

前面的例子,我们都能比较容易地理解。下面我们来看,借用假设字母时使用明数的类型。所谓明数(Value),其实就是提示数和填入数的统称,即这个单元格此时不是空格的状态,但它具体是初始就有的提示数信息,还是自己填的并不重要;明数早期也叫确定值,即当前确定的数值。

可以从名字看出,有明就有暗。所谓暗数,肯定指的就是候选数了。是的,暗数就是候选数的别名。不过这里我们就不改了,毕竟候选数用的次数也比较多了。

带有明数的欠一三数组

明数欠一三数组

如图所示。我们发现,c4 里,r3c4 只有候选数 7 和 8。如果它填了一个数进去,那么此时 7 或 8 就不能填在 r78c4 之中,于是这个数就会落到 b8 里的 r78c6 之中。

不过和刚才的例子有所不同的地方是,这次我们再也无法确定 7 和 8 的具体填数位置,因为此时 b8 里能填 7 和 8 的地方一共有四个单元格而不是原始欠一数对那样只有三个单元格。

这有些麻烦了。但是我们仔细再观察一下,似乎数字 1 也可以纳入到欠一数组的结构里来。如果纳入进来的话,相当于就是说 r78c46 四个单元格其中必须填 1、7、8 三种数字。这就合适了:因为刚开始我们有 r78c4 只能有一处填 7 或 8,而 1 纳入后,1 会占用这四个单元格的其中一个名额,r78c4 占一个名额,剩下呢?剩下就是 r78c6 里不填 1 的另外那一个单元格,这样就刚好能放下三个数字 1、7、8。

很好。这样我们就保证了 1、7、8 都放得下了。所以结论呢?由于我们先填了一个数在 r3c4 里,所以先假设它是填的 aa。然后,我们可以得到 r78c4 里必须有一个 bb。然后,r78c6 里必须是一个 aa 和一个数字 1。所以,结论就是,r2c4 <> 78r78c6 <> 234

这里我们借用了数字 1 必须填在 r78c46 里。但实际上我们看得到的是,r78c46 里其实就只有 r78c6 右边这两个单元格可以填 1。显然,由于 c4 早就已经有 1 的明数出现,所以压根也放不了 1,所以我们只能把这个 1 视为共轭对一般的存在,相当于给结构打了个补丁,以便支持推广的形式。这是一般的理解方式。

不过,你也可以这么去理解它:哪怕 r4c1 的这个明数 1 它是以候选数形式存在的,这个欠一数组结构仍然是成立的。比如说,r4c1 此时不再是明数 1,而 c4 还存在一个单元格只有候选数 1、7、8。然后我们为了让这个 1 不能直接通过排除出数而破坏掉结构,我们再给 r3c4 补上候选数 1。此时,这个结构就会变为一般的欠一三数组。结构的结论仍然是成立的,甚至删数大多都不会变(当然,1 可能会新增删数)。所以,这个例子实际上就可以被视为是欠一三数组,但是数字 1 处于确定在某一个固定的格子里的特殊状态。所以这种类型也称为明数类型。

可以看出,明数类型在删去固定的这个明数后,实际上用的数字本身就只有 7 和 8 两种数,它已经是最小规格的情况。因此,明数类型等价于标准版本的欠一数组来看,起步就是三数组。

下面我们再来看一个例子。

明数欠一三数组,另外一个例子

如图所示。这个例子和前面那个完全一样,所以就留给你自己看了。

带有明数的欠一四数组

由于明数的特殊性,所以欠一数组具有四数组的状态。

明数欠一四数组

如图所示。和前面一样。我们先看成欠一三数组的状态。可以发现,c7 里,单元格 r12c7 只有候选数 2、3、7。所以,这两个单元格最终只能填入数字 2、3、7 的其中两个。于是,这两个数字都不能出现在 r89c7 之中。而由于我们还需要确保 b9 里数字 2、3、7 填入正常,而 r89c7 此时最多只能填一个 2、3、7 的数字进去(还不能和 r12c7 填的一样)。所以,r7c89r8c8 里必须安插两个位置填上跟 r12c7 一样的数字。

而我们还发现,数字 5 在 b9 里只能填在 r7c89r8c8 里,所以里面还得有一个单元格被 5 填入。所以整体来看,能摆成功的唯一状态是这样的:r12c7 填入的数字是 aabb,然后 r89c7 只能填一个 cc 进去(此时 abcabc 是 2、3、7,且互不相等)。然后,r7c89r8c8 里有一个单元格填 5,剩下俩是 aabb。所以,这么看起来,c7 里会有关于 2、3、7 的显性三数组出现,而 b9 里则会出现 2、3、5、7 的隐性四数组(别忘了 5 也在其中)。所以删数结论是 r456c7 <> 37{r7c89, r8c8} <> 19

当然,和前面也是一样的。你也可以将 c7 里已经存在的明数 5 视为候选数状态,然后这就好比是一个关于 2、3、5、7 的欠一四数组(Almost Locked Quadruple,简称 ALQ)结构,所以我们把这个称为带明数的欠一四数组。

下面我们再来看一个例子。

明数欠一四数组,另一个例子

如图所示。这个例子更为特殊。它直接用了两个明数。推理方式也是完全类似的,首先假设 c4 里填 3 和 9 的情况,可以得到 r23c4 不能填这个数,于是这个数就会落入 r2c5r3c56 的其中一个单元格里。而我们还发现由于 2 和 5 只能摆在这三个单元格之中,所以一个 2 一个 5 就占用了两个单元格,所以刚好只能再放得下一个位置填和 r5c4 一样的填数。

欠一数组的内容我们就介绍完毕了。

最后更新于