第 62 讲:飞鱼导弹的基本概念
接下来我们将进入第三个高难的技巧板块:飞鱼导弹(Exocet),而这个技巧在之前的所有技巧内容里都没有出现过,难度可见一斑。
在早期文献里,这个技巧被翻译为鱼雷和潜水艇,不过潜水艇在早期文献里是一个错误翻译。
Part 1 基础使用
1-1 4数初级飞鱼导弹

如图所示,这个结构看起来涂色的单元格非常多,所以看起来结构挺复杂的。我们来看看怎么去推理。首先我们注意到,r456789c247这18个单元格里,填入2、5、6、7的位置最多只有两个。我们换一种比较容易理解的说法:在r456789c247这样18个单元格里,最多能够放下两个2。这是显然的,因为2在这18个单元格里只出现在r46c247这样6个单元格之中。显然,这6个单元格分属于r46两行上,所以显然只可能填入最多两个2,任何第三个数字2的填入都会在r46的其中任意一行里产生重复。同理地,我们可以发现5、6、7也是一样的道理,如下面给出四个图所示,我们分别把2、5、6、7四种不同的数字的填数情况的位置全部都标注出来了。




很显然,它们都只出现在最多两行上,所以最多只可能允许填入两次。
接着,我们转变一下观察和推理的视角。c247一共三列,每一列都必须出现完整的一组数字1到9序列,所以c247一共三列,就必须出现三次完整的1到9序列。但2、5、6、7这四种数字在这18个单元格里只能最多出现两次在里面,那么与之互补的剩余的9个单元格里,就必须出现至少一个2、一个5、一个6和一个7,才能满足此要求,如图所示。

抛开r1c4、r2c7和r3c2不看(因为它们都是确定值,无法填入其它数字了),也就是说,在剩余的六个单元格里,必须至少有一个单元格里是填入2的,有一个是5,有一个是6,还有一个地方是7。
接着,我们把视线放到r1c56上。恰好,r1c56只有2、5、6、7这四种候选数。我们假设最终这两个单元格放的是2、5、6、7的其二(为了方便表达,我们假设最终的填数为a和b,其中a, b∈{2567}),把a和b试填放到结构里,就会发现,此时能够排除掉一些填数位置。

如图所示,我们一不小心就排除掉了r1c27和r23c4四个单元格填入a和b的情况了。而在和之前说到的那18个单元格互补的r123c247之中,仅剩下两个单元格还能放下a和b。比如说,假如a和b是2和5,那么r2c2和r3c7里必须有一个2和一个5。这是显然的,因为6和7我们不知道放哪里,这一点没有约束,但2和5已经在r1c56里形成了数对形式,导致了删数的影响,最终只能放到r2c2和r3c7里。而这两个单元格显然不能填入一样的数字,是因为2、5、6、7必须在这9个单元格里都至少出现一次,而6、7我们可以随意保证(刚才的假设r1c56是2和5跟6和7是无关的,所以6和7是可以随意放的),而2和5就只能在这两个单元格里了,而都得出现至少一次,就必须让两个单元格填入一个2和一个5才可以满足这个要求了。因此,这两个单元格里一个是填入2,另外一个是填入5的。当然,这是假设,所以换回a和b的话,r2c2和r3c7里就必须有一个a和一个b的出现,而且a和b还是不同的数字。
不管a和b填入的数字是什么,我们都能清楚地明白,r2c2和r3c7里都不能填和2、5、6、7无关的其余任何数字了,所以r2c2(3)是应当被删除的,因为这个候选数一旦成立,就会占据其中一个单元格使得填入a和b的位置不够,进而出错。
这个结构推导分了非常多个小的步骤:首先是观察下方的18个单元格,确定2、5、6、7的填数都是最多两个的;然后是上面互补的9个单元格里至少出现各自一个;接着是发现上方有两处单元格里恰好只有2、5、6、7,于是假设它们是填入2、5、6、7其二,然后用未知数a和b试填到单元格里,并最终发现a和b只能放到我们规定的r2c2和r3c7之中的,所以两个单元格里必须都是2、5、6、7的数字,别无其它,所以无关的候选数都能被删除掉。
这个结构有一点点用到了鱼的东西,比如2、5、6、7放入c247的情况就有一些类似于鱼的定义域,因为鱼的定义域规定,一个区域内填入某个数字是恰好一次的,所以这个看起来就好像是一个涉及2、5、6、7四种数字的剑鱼,而且恰好位置都在c247上。而这个技巧被称为飞鱼导弹也跟鱼有关,可见结构和鱼的相关性是非常大的。而目前我们遇到的例子是基础版本的,所以按照分类,它应属于初级飞鱼导弹(Junior Exocet,简称JE);而又因为结构涉及的2、5、6、7四种数字,所以又可以直接称为4数JE。
这个结构涉及到了非常多的单元格,所以我们不得不提及结构涉及的一些术语词。
1-2 术语词
为了介绍简单,我们给出一些示意图,来表达我们需要表述的内容。


先来看左图,左图框起来的18个单元格统称为交叉线单元格(有时候也简称交叉单元格,Crossline Cells)。右图给出的两个单元格叫做基准单元格(Base Cells),一般都有两个单元格构成,而且可以通过示例里发现,交叉线单元格里推导所涉及的数字,在基准单元格里都找得到,而且基准单元格里也没有其它多余的候选数情况。


左图给出的两个单元格是最终我们确定一个a和一个b的地方,它们被称为目标单元格(Target Cells),一般也是有两个的;而右图给出的,目标单元格两侧的绿色的四个单元格称为镜面单元格(Mirror Cells)。好像镜面单元格在之前的示例里并没有真正用到,所以它用得很少,不过有用到的时候我们会提及到。

最后再来看这个图,能够受到基准单元格填数影响的这几个单元格被称为逃逸单元格(Escape Cells)。它也用得比较少,只是在推导过程里一般会提及到而已。
还有一些其它的术语词,比如邻伴单元格(简称伴单元格,Companion Cells)和它的镜面单元格(Companion's Mirror Cells),不过这些我们都在具体用得到的时候才提及,因为它们用得非常少。
下面我们再来看一则示例。
1-3 3数JE(3-Digit JE)

如图所示,这一则示例比之前那一个示例简单一些的是,基准单元格里面只有1、3、6三种数字。
逻辑类似地,我们可以发现r123789c258里面能放下最多两个1、两个3和两个8,所以在r456c258里,至少得有一个1、一个3和一个8。
我们假设基准单元格里放的是a和b两种不同的数字(显然,a和b是1、3、8的其二),那么,如果放进去后,r5c46就形成了关于a和b的数对,使得r456c258里最终能放a和b的位置仅剩下r4c2和r5c8两个单元格。
因为r4c2和r5c8两个单元格只能是a和b的关系,而a和b又必须是1、3、8的关系,所以这两个单元格显然是不能放入其它和1、3、8无关的数,所以删除掉它们,故r4c2 <> 24。
这个例子推导起来比较简单和轻松,因为基准单元格里只有三种数字,而最初的示例是四种数字。但不管是多少种数字,推导的逻辑都是大致上一样的,因为在推导交叉线单元格里的时候,数字之间是没有什么关系的。
下面我们来看一种惊人的示例,它涉及五种不同的数字。
1-4 5数JE(5-Digit JE)

如图所示,这一则示例我想要让你自己来尝试推理,我不给出解释。它涉及5、6、7、8、9五种数字,而删数是图上已经给出了的r2c9(3)。
1-5 第二类标准JE
下面我们再来看看第二种类型的JE,它和第一类的JE(之前说到的都是第一类的)有什么区别。

如图所示,观察到基准单元格里涉及2、3、4、8,我们就尝试在交叉线单元格里找2、3、4、8的填数情况。
显然,r123456c147里,能放下最多两个2、3、4,而8却在r356都有,这是否意味着8是例外,可以出现三次呢?
仔细观察一下8的分布情况,我们发现8只能在c47里出现,所以实际上也算只能出现最多两个。所以这一次我们不能横着看了,需要竖着看。
这样我们就确定了2、3、4、8只能最多两次的情况。接着后面的逻辑就一样了,设基准单元格填入a和b,然后得到目标单元格r7c4和r8c1是a和b,所以不能涉及2、3、4、8以外的数字,删掉它们。
我们再给你一个示例,希望你能独立理解。

下面我们来看一些有关于JE的变体。
1-6 共轭对类型JE

如图所示,最初的推理逻辑都是一样,发现基准单元格里涉及6、7、9,所以我们就在交叉线单元格里去看6、7、9的分布,发现都是最多出现两次。所以r347c789里,6、7、9都是最少有一次出现。
然后发现,基准单元格填入的是6、7、9的其二,假设为a和b,那么a和b最终就只能放到r4c8和r7c89里。显然,三个单元格是足够放下一个a和一个b了,而且还有一个额外的数字,随意是多少。但实际上并不是这样。
我们仔细一点就会发现,r7上r7c89出现了4的共轭对,这便使得最终4必须放在r7c89的其一里,所以实际上,在r4c8和r7c89里,有一个a、一个b和一个4,而且必须在r7c89里,a和b的位置还是很紧张的。所以,这三个单元格里和6、7、9无关的其余候选数都能被删除掉。
这一个示例把目标单元格从两个变为了三个,因为它还带有一个共轭对的使用。
我们再来看两则这样的示例。

这一个示例的逻辑和刚才的差不多,所以这一个就自己理解。
下面我们来看一个更为奇特的示例。

如图所示,这一则示例带有两个共轭对。首先我们依然还是可以看到,交叉线单元格里4、7、8的填数位置都最多只有两个,所以在r123c347里,4、7、8都是最少有一个出现。
假设基准单元格填入4、7、8的其二是a和b,那么根据a和b的数对的结构的排除,我们得到了r23c47里必须要放下a和b。而四个单元格里,c4出现了3的共轭对,而c7出现了9的共轭对,且都在刚才说到的r23c47里,所以这四个单元格里必须是一个a、一个b、一个3和一个9,而且3只能放在r23c4里,9只能放在r23c7里。所以,和4、7、8无关的数字都能被删除,因为位置是刚好够的,容不下其它数字的放入。
1-7 只有一个基准单元格的JE
1-7-1 使用示例

之前我们就说过,涉及的数字的种类数的多少都无所谓,所以我们最少可以到多少呢?两个就可以了。如图所示,这个结构只有一个基准单元格,且里面包含1和2两种不同的候选数。
首先发现到的是,交叉线单元格里1和2都只能最多填入两个进去,这便使得下方r789c159里必须至少有一个1和一个2。
发现,假设基准单元格r7c3填入的是a,那么a此时只能放在唯一的一个目标单元格r8c9上,别无其它位置。所以r8c9 = r7c3 = a。而a只能是1或2,所以和1和2无关的数字都将被删除,故r8c9 <> 38。
这一种示例用法有一些特殊,因为只有一个基准单元格,不过这一个示例却有一种直观的视角,即通过代数法的视角来解决推导逻辑。
1-7-2 代数视角


如图所示,可以发现r9c7 = {45}。那么我们设为a,执行代数思路。当a = 4的时候,由于会形成X-Wing的构型,所以最终能放4的位置只有r2c8;同理,a = 5的时候也会存在X-Wing的构型,所以依旧可以得到r2c8 = 5。
所以,不论a是多少,r2c8 = r9c7 = a,而a又是4和5的其一,所以r2c8里其余跟4和5无关的数字都可以被删除。
当然,如果你不习惯这种视角,你可以尝试从候选数角度来分析,如图所示。

1-8 目标单元格同侧的JE

这则示例的逻辑和之前的示例都差不多,只是唯一的一处特点是,它的目标单元格位于同一侧。
1-9 数组类型JE

如图所示,根据最初的JE的推理过程,我们最终由于r1c12是a和b(其中a和b是1、2、4的其二)的关系,得到r2c4和r3c47里必须有一个a和一个b。我们算上r3c5可以发现,b2里能放8和9只有r2c4和r3c45这三个单元格。如果r23c4都没有8和9,那么b2就只有一处可以放8和9,而显然一个单元格是容不下两处填8和9的要求的,所以这样是不行的;如果r23c4都是8和9的话,根据JE的要求,a和b又无法正常放到r2c4和r3c45里了,因为这三个单元格必须保证一个a和一个b,换句话说,这三个单元格里必须有两个单元格是1、2、4,所以这么填也不行。
所以,最终我们就只能让r23c4里有一个单元格是8或者9。那么,b2里就必然会产生一个关于8和9的隐性数对结构,是r23c4的其一和r3c5构成的。这样一来,我们就能保证的是,r23c4里有一个单元格是8或者9,而另外一个单元格则是1、2、4的其一,而且r3c5只能是8或9其一,r3c7只能是1、2、4。所以删除掉与这些数字无关的其余候选数。