第 54 讲:无法传递或很难使用传递性的结构
下面来介绍一些不太好使用传递性和根本就不能使用传递性来证明其结构是致命结构的例子。
Part 1 唯一矩阵
我们先来看示例,看看它长啥样。
1-1 使用

如图所示。我们假设r7c3(8)和r78c5(2)同假,则r789c359(4567)将构成一个合格的致命结构。这个结构叫做唯一矩阵(Unique Matrix),它和唯一矩形的技巧名就差一个字,但意义完全不一样。
1-2 证明
这个结构使用传递性将非常难解释,所以我们只能使用普通的枚举方法来证明这个结构是否是致命结构。由于结构涉及的数字是四种,而且是三阶的,所以我们尝试对结构里填入的数字分别假设为a、b、c和d来简化描述,并假设出四种情况:没有d、一个d、两个d和三个d。

如图所示,我们就假设图里的d = 4。下面开始枚举每一种情况。
假设结构没有4的话,显然是致命的,因为任取结构涉及的两列,都会发现构成了拓展矩形的致命形式(竖着放的那种形态)。
假设结构有一个4的话,显然也是致命的,因为结构只能放1个4,那么剩余的两列里必然也只有1、2、3,使得依然形成了拓展矩形的致命形式。
假设结构里有两个4和三个4的话,证明过程就开始复杂起来了。所以我们尝试尽量用图片的形式呈现出来。先来看只有两个4的情况。

如图所示,假设我们只有两处4,显然这两处4的位置是可以随意放的,所以我们找了一个比较对称的、方便观察的地方放下了4。接着,我们可以观察剩下的七个单元格。显然,我们对r456c5的填法是随意的,所以我们就尝试直接放上1、2、3;同理,r5c258也是对称的,所以这里其实可以随意放1、2、3,都是同样的情况。所以我们找出一种填法,如下图所示。

至于r4c8和r6c2,是根据直接的排除效果得到的,不过显然,r46c28构成了UR的致命形式,所以这种情况就错误了。
因为刚才我们的证明过程之中,虽然很多填法我们都没有直接实现,但因为结构是对称的,所以怎么去换数字的位置,实际上都是等效的,所以我们没有给出其它情况的证明。接着我们考虑有三个4的情况。

如图所示,我们找到三处填入4的位置,显然,和刚才一样,4的位置是可以随意放置的,所以我们找一个比较对称的、好观察的填法。
接着,我们只需要处理剩余的六个单元格,看它们是否填入后形成整个结构的致命形式即可。而和刚才一样,我们不得不又开始随意假设情况,比如此时我们按r46c5填入1和2来看接下来的情况(2、3和1、3的逻辑和这里的假设是等效的,所以不用再去证明2、3和1、3的组合的情况);同理,r5c28也是一样的道理。

接着,我们可以尝试看下r4c8和r6c2的填数情况。如果r6c2是1,则r456c25构成拓展矩形的致命形式;同理,r4c8如果是2的话也会这样,所以我们直接确定r4c8 = r6c2 = 3的结果。

但很显然,填入3后就可以看到,r46c28构成了关于3、4的UR的致命形式(这已经回到了之前的证明的其中一步了),所以这种情况也不成立。所以我们就证明了,所有情况全部都出现致命形式,故整个结构是一个致命结构。
接下来我们继续来看一则使用示例,相信你通过证明后,就可以更快地得到结果了。

如图所示,如果r5c1(3)为假的话,结构r456c159将构成唯一矩阵的致命形式,所以r5c1(3)为真,删掉r5c1的其余候选数。
Part 2 唯一性提示信息覆盖
接下来要介绍一个比较难的唯一性技巧,叫做唯一性提示信息覆盖(Uniqueness Clue Cover,简称UCC)。在外国的资料上,这个技巧的介绍也很少,其中提到了一句话,这个技巧是通过计算机编程验证,得到的删数,不过现在我们将尝试用逻辑解释这个技巧的删数原理,所以打起精神来,这个技巧将非常具有挑战性。
2-1 使用

如图所示,观察第一大行(r123),提示数非常少,这甚至让我们开始怀疑,这样的数独题还能保证唯一解吗?题是唯一解的,这请你放心。不过我们就是需要利用这一点,来得到填数。

我们先假定下方六个宫b456789已经通过普通逻辑全部填满了数字。如果题目唯一解,上面的b123则应是可以继续推导得到填数的。不过b123内只有两个提示数,明显无法直接得到填数,不管是什么技巧,都是一样。
我们从唯一余数下手来思考这个问题。我们发现,b123因为只有两个提示数,所以如果要唯一余数的话,至少要8个完全不同的数字,才能出一个数字。我们假定下面六个宫全部已经填好了数字,那么,如果可以出唯一余数,此时能出唯一余数的地方,只有r3c789。为什么呢?下面有6个数可以提供唯一余数的数数操作,而r3c789恰好又可以数出两个数来,这样就可以有8个数字,就可以产生唯一余数解法,得到这三格的填数。但仔细思考来看,r3c78其实是不行的。为什么呢?根据r2c9(2),可以得到b69里填入2的位置,只能在r456789c78(c78b69,涂橙色的区域)。我们就针对r3c78的其中一格来说,比如这里的r3c7,能够影响这里候选数排除的数字有r3c6、r2c9和r456789c7,共计8个数。可是r456789c7里有一个2,而r2c9也是2,这样就带来了一个很遗憾的结果:有两个2,所以有效的信息最多只有7个,明显是无法唯一余数出数的。
同理,r3c8也是一样的道理。所以其实,实际上只有r3c9可以通过如此的逻辑出数(当然前提还是最开始说到的,下面的六个宫全部已经填好了数字,而且必须是完全不同的8个数字,才有办法唯一余数)。
那么,此时我们观察c9,c9此时有一格可以出数,是r1c9 = 1。为什么呢?如果r456789c9里有一格是数字1的话,这样就会和r3c6(1)是一样的数字,r3c9此时就不能通过唯一余数得到出数;此时就没有位置可以出数了。这是因为,由于r3c78不能出数,r3c9如果还不能出数的话,那就真的没办法再找到位置出数了,此时这一行就会产生多种填法,毕竟现在已经没有其他的提示信息了,没办法确定接下来填哪里,或者其他的逻辑删数。所以不能让r456789c9里有数字1;显然,r3c9也不能是1(r3c6(1)的排除),所以,c9里只有r1c9可以填入数字1,所以r1c9 = 1。
回到最初的逻辑,同样我们可以通过观察r2,此时可以出得到r1c6 = 2的结果,这里的逻辑是类似的。

逻辑大致和上方的逻辑同样,只是换了下坐标,其他的推导思维都不变。
注意,这两个填数是互不冲突的,是独立分开的两个结论,也就是说,r1c6 = 2和r1c9 = 1的出数结论是不讲先后顺序的。得到这两个数之后,余盘瓦解。
2-2 原理剖析
这种神乎其技的技巧,不免会让人觉得比较痛苦,因为它的填数模式看起来似乎跟致命结构完全没有关系,但实际上,你可以感觉到,上述的逻辑里有一些瑕疵。比如,为什么我们非得使用唯一余数技巧不可呢?如果使用其它的技巧,比如链,难道不行吗?
答案是否定的。这里只能用唯一余数。排除不行,链等等技巧更不行。排除是显然不够数字的,一个合格的排除法,针对于b123来说,如果像是b1的话,就至少需要4个完全一样的数字作排除,才可能得到唯一的填数位置。然而r2c9和r3c6是不同的数字,下面最多只能保证两个数字,上面也只能保证其中一个数字作排除,所以只有三个数字,完全不可能得到填数结论。
b23为什么也不行呢?就拿b2来说,要出一个数字,需要至少3个数字才能“卡死”一个数字的填数位置。而下面的数字1或2的填数位置是我们无法直接确定的,换而言之,如果看数字2的话,能够使用排除操作,并得到填数的位置只可能是r1c6,并且需要3个数字2共同对b2排除,才可能出这个数。然而,你怎么知道下方数字2的位置不能在r456789c6里?如果在这里没,情况就更加糟糕,3个数字2都不能保证出数了,然而就需要至少4个2,就回到了b1的排除逻辑上(数字2不够那么多,显然是不行的),所以b2是无法排除的。b3也是同理的。所以排除操作是无法得到填数结果的。
那链为什么也不行呢?链针对于这样提示数少的地方,是无法起到重要作用的,链的结果只能是删数,而由于b123提示数非常少的缘故,可以利用的强弱关系也会非常少(可以说甚至没有),根本无法指望用链来得到删数。
其他技巧肯定不行的,这里就不用多说了,毕竟,除了唯一性技巧(致命结构)以外,都能转为强弱关系表示的画法。链都不行,更别说其他的结构了。
2-3 变体类型
UCC并非只有上面的一种构型。下面我们来看一个变体构型。

如图所示,这个结构有点稍微难理解。我们使用前文的理解模式来思考这个题目。


仔细观察第3行,第3行可能形成出数的地方只有r3c123。其它四个单元格不能出数的原因如图所示。
先看左图,如果r3c45可以出数的话,这是不可能的,因为r3c45处于具有1和2两个确定值的位置上。r3c45要想出数,就必须获得8个不同的确定值,但是由于1的位置,使得橙色的12个单元格里必然会有两处1,使得不同的填数信息不足8个;同理,右图也是一样。r3c78显然最多只有7处不同的确定值。所以r3c123可能是目前唯一的希望了。
现在我们开始考虑出数的问题。


我们尝试假设r1c1 = 2。这个时候,r1c23里肯定会有一个是1(来自于b23的排除法),所以我们随意假设其中一种情况。图中给出的是r1c3 = 1的情况,当然你也可以假设r1c2 = 1,思路是和下面的推理方式一样的,所以我们这里就不同时阐述两种情况了。
当此时r1c3 = 1的时候,由于1的确定值(左图)和2的确定值(右图)的分布,使得此时红色的单元格无法出数。先看左图,由于此时r1c3 = 1,所以橙色的单元格里必然会出现两处1,使得出数的确定值不够8个,无法出数;而右图展示的则是从2这个数字而言的分布情况,这样也会使得r3c3无法出数。因此,此时r3已经无法产生出数了。如果我们假设r1c2 = 1也是类似的道理,所以就不重复了。
我们仔细观察r123,如果r3能够确定填法的话,由于r12只有一处提示信息的关系,我们能够找出一种填法使得和r3不冲突,这样一来,r123就填满了。可是由于r3无法确定,那么r12就好比是独立于结构的“小岛”,所以我们无法对r12给予任何其它的确定值,让它们能继续出数并得到结果。也因此,r123此时是存在多种填法的。
但数独规则要求,每一个题目的每一个单元格均必须包含唯一的填数情况,所以这种情况是不可能出现的,这便证明了最初的假设是错误的,故r1c1 <> 2。
同样地,你也可以从r1c3 = 2出发来证否。这个题目此时可以删除r1c13(2),于是,b1会形成2区块结构,使得r2c456 <> 2;当然,r2c6 <> 2也是显然的,你也可以用过涉及并排三宫的反转唯一矩形的方式来理解它。

而至于r1c6 <> 2是为什么呢?如果我们假设r1c6 = 2,我们发现,如果r2能找到唯一填法,由于r13的填数模式,那么必然也可以找到唯一的填数方式。所以我们需要确定的地方,是r2的填数。
现在来看r2此时能有哪些位置可以出数。



如图所示,这样三个图证明得到了r2c123678是无法出数的。逻辑和之前的类似,这里就不赘述了。而下面我们只能让r2c45出数了。不过,有些遗憾的是,r2c45此时由于r1c6 = 2的假设的关系,它们此时已经无法出数了。

和前文描述得一样,橙色的单元格里必然包含1和2,使得不重复的填数信息不足8个,所以r2c45此时无法得到出数结论。因此,r2c45此时也无法出数。
这样一来,r2没有任意一个单元格可以出数,也就意味着r2可能存在多种填法,这也使得r13的填数情况完全无法确定,便违背了数独的唯一填数的要求。所以,r1c6 = 2的假设是不正确的。
最后再为你展示一个超级复杂的UCC示例,希望你能理解它。

2-4 还有构型吗?
事实上,我们还存在很多UCC的变体构型,上面只是其中一种构型。不过,这些变体构型已经足以让我们感受到这个技巧的难度了。

其中的“*数字”表示确定值,“-数字”表示删除哪个数字,“-@”表示删除这种构型涉及的数字外的其它数字。例如图里的第4种情况,删除的数字就是3到9,第5种情况也是删除3到9。