第 29 讲:同数链和异数链
在学习新内容之前,我们先来回顾之前一节的内容。
Part 1 链的基本推论回顾
之前讲了AIC的基本要求。不知道你还记得多少呢?是不是看完上一讲就跑出去玩了呢?
我们来回顾一下上一讲讲过的AIC的基本满足的特征和要求:
AIC开头和结尾都应为强关系;
AIC链头节点设为假,得到的链尾节点为真;
AIC内的强弱关系交替存在;
AIC的长度是一个单数(正奇数),节点数量则是一个双数(正偶数);
AIC的链头和链尾节点至少有一个正确。
我们拿着这样一些特征来看一下现在我们要讲的东西。
Part 2 同数链/单链/多宝鱼

如图所示,假设r1c8(9)为假,则由于r17(9)和b2(9)的共轭对,顺次推理得到r2c4(9)为真。所以r1c8(9)和r2c4(9)至少一个为真。
这个AIC的长度超过了原始多宝鱼结构的长度3,变为了5。所以它就不是多宝鱼结构了,它就是一种普通的AIC:同数标准链(俗称多宝鱼,有时也称为单数链、单链或同数链,X-Chain/Turbot Fish)。同数链是指,结构内部只涉及同一种候选数的AIC。不管链有多长都是可以的。
那么,AIC只能涉及同一种数字吗?当然不是。AIC分两种:同数标准链和异数标准链(简称异数链,Multidigit AIC)。接下来就会讲解这样的一些结构。
Part 3 异数链
接下来我们来看看不同数字之间,如何形成强弱关系。
3-1 双值格链(XY-Chain)

如图所示,这个链特别奇怪,图中为什么只有弱关系标注呢?强关系去哪里了呢?其实,强关系隐藏在单元格内,这个链表述如下:
这条链相当长。我们看一下它的逻辑。假设r6c2(3)为假,则r6c2只剩下一个候选数了,所以r6c2(1)就为真了。于是乎,r6c2(1)使得r6c4(1)为假,然后r6c4(5)就为真了,然后依次推理,直到最后r8c9(3)为真。
很奇特的是,结构的强关系全部产生于单元格之中,最终可以得到一个结论,即r6c2(3)和r8c9(3)至少一个是为真的,所以删掉交集,即r8c2 <> 3。
这个结构称为双值格标准链(简称双值格链,XY-Chain)。顾名思义,结构只涉及到双值格,强弱关系却依然可以传导。
当然了,之所以提出来,因为这个结构非常好观察,对于唯余流玩家来说,双值格是非常好观察的。
当然了,这个文本表述还可以写成这样:
候选数也是可以直接写入到括号里面的。这样一来,r6c2(3=1)这样类似的表示方法就可以一下知道是产生于单元格内的强关系(或是弱关系)了,写起来也比之前的方式简单一些。
3-2 远程数对(Remote Pair)

远程数对(Remote Pair)是最有趣的AIC结构了。如图所示,假设r1c5(8)为假,按照双值格链的推导方式,可以得到r8c6(8)为真;或者假设r1c5(9)为假也可以:
所以这个技巧的头既可以是8也可以是9,所以可以删除两个不同的数。而且,这个技巧还能被拆解为两个摩天楼技巧。
如图所示。需要注意的是,我们甚至可以认为,r1c5(89)和r8c6(89)的填数一定不同,所以可以构成跨区数对结构。不过,这一点需要你自己理解和推理为什么。


3-3 首尾异数链(XY-X-Chain)
接下来介绍一种AIC,刚才的AIC虽然异数,但头尾起码是同数的,现在介绍的AIC,连头尾都是异数的了。
3-3-1 先来看看标准版长啥样

如图所示,链写法如下:
等下,头尾都不一样,那怎么删数呢?
试想一下,之前我们讲的BUG + 2里到底是如何删数的。AIC有个特征,就是首尾节点至少一个正确,这恰好符合之前BUG + 2的“真数必须至少有一个是正确的”的要求,所以我们删除的是两个真数都可以看到的地方(即交集),而这个题跟BUG + 2基本上没有差别,“即r9c4(8)和r7c4(1)至少有一个是正确的”是完全一样的思路。所以,我们可以套用之前的逻辑:r9c4(1)应不应该是这两个节点的交集?如果r9c4(8)为真,那r9c4自然就不能是2了;如果r7c4(1)为真,当然也不能让r9c4填1。所以r9c4(1)确实应当是这两个节点的交集。当然了,类似地,r7c4(8)也是这样的。
这个结构是一种特别特殊的AIC了,它叫首尾异数标准链(简称首尾异数链,XY-X-Chain);另外,如果这种链的删数只有一处而不是像图上有两处的话,这种结构就叫不连续环(Discontinuous Nice Loop)。例如下面的这两则示例。
3-3-2 不连续环(Discontinuous Nice Loop)

如图所示,假设r1c8(5)为假,则可以通过该链得到r7c8(7)为真。
不过这种结构显然只能删一个数,即r1c8(7)。
3-3-3 不连续环的变体
接下来我们来看一个更为“变态”的构型。

如图所示,这条链看起来很奇怪,开头都不好找,而且就图上那样,大多画出来的都是强关系,更难找到链头了。实际上,链表示如下。
这条链从r4c5(2)开始,然后又转回来了,又到了r4c5(2)。而且首尾确实都是强关系,而且也符合链的逻辑,但为什么链结构的结论是出数了呢?我们这么去理解:假设r4c5(2)为假,绕了一圈回来发现r4c5(2)为真,则说明我们得到了矛盾,进而得到假设错误。而假设是r4c5(2)为假,如果它是错误的,那么结论就应该是r4c5(2)为真,所以r4c5 = 2。
这种结构实际上是一种比较麻烦和难受的链结构,虽然它能直接得到出数,但因形式很特殊,绕了一圈得到了矛盾,这一点和试数非常接近和相似,所以我们不建议大家使用这个技巧,仅理解其逻辑即可。
3-3-4 等会儿,删数和链的头尾也有强弱关系?
这个技巧之所以被归为不连续环,是因为它实际上把不连续环的逻辑“反转”了一下。我们先来思考一个问题。链尾和删数结论到底是什么样的关系。我们可以得到,因为链头为假,得到了链尾为真的结果。这便意味着,因为链尾为真,所以才得到了删数结论,所以删数跟链尾实际上为弱关系,即链尾真得到删数假;不过还没完。
如果我们把整条链的过程重新调整一下,从删数开始推的话,因为链头最开始是从“为假”开始推的,所以我们如果还要往后倒退一个节点的话,从删数作为链头的话,我们只得设删数节点为真,然后继续推理,这个结构整体才能持续到链尾;否则到链头节点的时候,就已经和我们最开始的设定相反了,就没办法继续进行了。

所以如图所示,这个画法的完整版就是上面这样的结构,而从删数节点开始推理,并设它为真,而推了一圈后发现删数节点是为假的,所以与假设违背。由于假设的是“为真”,所以结论就应该为“删数节点为假”,即删掉它。
这一点确实有些绕,不过思路依然是很清晰的。可以从刚才的说明文字里看到,实际上,不连续环一共是两种类型:同一个单元格弱关系开头弱关系结尾(我们把链延长了才得到的效果)和同一个单元格强关系开头强关系结尾,所以我们才说后者也属于不连续环。属于不连续环的原因并不是在于异数,而是推导逻辑和思维方式。另外请记住,删数和链的头尾节点都是形成弱关系的。
讲完了基本的思路后,接着我们再来看一种更诡异的结构。
3-4 自噬链(Cannibalistic AIC)

如图所示,链表述如下:
这条链看似很普通很简单,不过它有一些奇特。链头是r1c7(6),设定为假,得到链尾r4c8(6)为真,所以两端至少有一个为真,于是删除交集。
此时我们会发现删除的交集有一个数是r1c8(6),它是链内的一个节点。为什么这个数也能删掉呢?因为我们利用了链才得到的首尾至少一个为真的结论,而不是因为删数才破坏的链结构,所以结构成立后才产生了删数。
在SDC一节里我们提到了自噬,而这种链也具有类似的效果,所以它也就称为了自噬标准链(简称自噬链,Cannibalistic AIC)。
3-5 普通的标准链

如图所示,链结构如下:
证明过程和思路我就不再重复了,思路则是完全一致的,根据链的思路往下推导即可。
3-6 Wing结构
Wing在之前我们已经接触到了一部分结构,接下来我们来看几则也叫做Wing,但由来不相同的结构。
这一部分的技巧名字特别不好记,而且是当时创造链体系之前的产物,而现在它们基本上已经被废除,所以这里仅供参考。不过你需要掌握W-Wing和M-Wing。当然,还有XY-Wing的额外介绍内容。
3-6-1 XY-Wing
实际上,XY-Wing除了之前的分情况讨论的逻辑以外,我们还能把它视作链结构。我们来看一下这个结构到底是怎么转化为链的。

如图所示,我们将之前的XY-Wing的示例改写为链。我们将其中一个分支“反向”,然后形成了一个双值格链:
实际上,任何的XY-Wing都可以使用如上方式进行转化。
3-6-2 W-Wing

链表示如下:
假设r4c7(9)为假,则由双值格和r2c79(2)的共轭对,就可以顺次得到真假情况,最终得到r8c9(9)为真。所以链头和链尾至少一个为真,删掉交集。结构的首尾两格是一样的候选数,并带有一个强关系的,就是W-Wing结构了。在观察的过程之中,只需要找到两个双值格,候选数也完全一样,再有一个行列上的共轭对,基本上就可以照着结构依葫芦画瓢。
3-6-3 Y-Wing?W-Wing?
在中国,Y-Wing它被当成W-Wing的别名;而在外国,Y-Wing则是被看成XY-Wing的别名。这里讲一下为什么中国的W-Wing有个别名Y-Wing。
很多资料上把W-Wing技巧名的后面打了个括号写着Y-Wing,或是Y-Wing后给了括号写的W-Wing。而Y-Wing有现如今的结果,系误传所致。
Y是XY的一种简写形式,用来代替两种未知数。有些资料将技巧的英文名写作Y-Wing,这么说是不正确且不严谨的。因为Y-Wing技巧原名而言,被误传的原因是由于Y-Wing(XY-Wing)结构内强关系只有三个,所以由此结构拓展出的所有只有三个强关系的链都称为Y-Wing Style,“Y-Wing Style”中文直译为“Y-Wing拓展构型”,此时,Y-Wing拓展构型就包括了W-Wing。但此时Y-Wing并不只是包含W-Wing这一种结构,而XY-Wing等,均属于此归类。
但是,因为引入技巧的时候,大家不是特别熟悉这一点,刚开始使用的时候并未注意到,也就“将错就错”了;现在中国反而比较习惯于称呼Y-Wing一些。
一个解释Y-Wing结构的链接是SudokuWiki所给出的XY-Wing的链接:
http://www.sudokuwiki.org/Y_Wing_Strategy
3-6-4 M-Wing

链表示如下:
3-6-5 Split-Wing

链表示如下:
3-6-6 Local-Wing

链表示如下:
3-6-7 Hybrid-Wing

链表示如下:
那么,基本的结构就讲完了,接下来来看总结。
3-6-8 总结
下面陈列上述结构的基本链构型。

3-7 谈一谈观察?
我们讲了这么多结构,发现各种结构有各种不同的视角和逻辑。那么,这么灵活的链也没有具体的结构,那么我们怎么去观察它们呢?
虽然推理的过程是顺序的,而我们在寻找链的时候,可以采用先强后弱的方式。因为弱关系是根本不需要查找的,只要在同一个区域下的两个相同的数,或是一个单元格的任意两个候选数,就可以形成弱关系,因为我们随意地就可以得到其中一个为真,就能得到另一个为假,所以我们尽量先去找到强关系,而这些强关系尽量相互之间可以有关联,然后最后使用弱关系把它们串起来就可以了。
下面我们来罗列两个类型的题目,提供给你练习。
3-7-1 #1:鱼图题
下面将陈列一个只有“/”符号,它表示这个单元格没有某一个候选数(假设为a)。这种盘面称为鱼图(Fish Diagram)。
请找出如下两个鱼图里所有可以删除候选数a的全部位置,并尝试说出为什么。

3-7-2 #2:一些真的练习题
再来看几则题目,这几道题仅通过之前学到的链技巧和直观类技巧就可以完成解题。







每一题涉及的技巧都不一样,可以尝试练习观察它们。

