那么 Sue de Coq 怎么观察呢?
在上一个文章里,我们完成了 SdC 技巧的学习,今天我们来看下这个技巧的观察。哦对,Sud de Coq 简称 SdC,也有简称 SDC 的(de 在法语里相当于 of,是一个虚词,所以不大写,所以一般简写为 SdC)。
最开始,我对 SdC 技巧是出于放弃的态度的,因为这个技巧特别不好观察,就像别人经常问我的问题那样:SdC 凭什么你就能选择上这些单元格,它们刚好不多不少就够推理呢?这里我们来介绍一下它到底怎么观察。
Part 1 三部曲

还是拿上一回的图来看。这个技巧的所有示例都可以发现一个通性(这里就给这一个图给你做对照):这个结构的所有单元格,你最少只需要找到两个区域,可以把它们全框起来。举个例子来说,这个图里我们可以找到7列和3宫这样两个区域,所有4个单元格都在这两个区域里。就是这个意思;而且,找到的这两个区域必然是一个行或者列,还有另外一个必然是宫。比如这个例子7列和3宫刚好是一列和一宫。这只是第一个要满足的。
第二点:我们刚刚不是找到了两个区域吗?这两个区域的交集上涉及的单元格的候选数种类数和涉及的单元格的关系是至少差2的。不是很好懂就看这个例子。整个结构涉及的7列和3宫的交集是r13c7(第1、3行第7列)两个单元格。里面涉及的候选数一共有3、4、7、8一共四种。四种数字和两个单元格一共是差2的。这一点先记着,我稍后会作说明。
第三点自然就是技巧本身就要满足的不跨区出现了:所有涉及的单元格里所有的候选数,每一个数字都能找到一个区域,把它们全框起来(这也叫不跨区)。而第四点也就是最后的压轴要求:数字种类数要等于涉及的单元格总数。
只要满足这4点要求,就算是找到了。下面我们来对 SdC 一点一点说明,具体的观察流程。
Part 2 观察步骤
下面我来对上面4点作出说明,并说明如何观察 SdC 技巧。
观察第一阶段:全盘一共有54个“交集区”(一共18个行/列,每一个行/列一共有3个不同方向的交集,所以有54个),我们挨个去看这些交集区,看有没有满足前面第二点要求(至少差 2 那个)的单元格序列。如果有,那么第一步就算完成了;当然了,如果这个交集里只有一个单元格是空格,或者根本没有空格,那么我们就可以很安心地跳过不看了。

比如我们来看,这个例子,如果我们随便取一共位置,例如r78c4。首先我们可以很清楚地知道,r78c4是处于4列和8宫两个区域的交集处的,所以Part 1里提及的第一点要求是满足的;不过第二点不满足:这两个单元格涉及的是2、6、9三种不同的数值,它们是差1的,而没有达到至少差2的门槛。
再比如r7c12,一共两个单元格,它们同时处于7行和7宫的交集上,所以第一点满足;第二点也满足:两个单元格里面涉及了1、2、3、6、8五种数字,它们是差3的,也算是至少差2的。
要想是一个行/列和一个宫的交集上,那么最多只可以涉及到3个不同的单元格。也就是说,你找到的交集上最多可以有3个单元格,而并不一定是像前文推导的那样,以后找 SdC 的时候只去看两个单元格。

比如这个例子,交集r789c3三个单元格一共涉及了1、2、4、6、9五种不同的数字,依旧是满足至少差2的关系的。
但对于前面的这个例子,好像看起来r9c789一共是三个单元格,且都用了。不过我们不是这么看的:r9c89才是整个结构的交集。因为从前面的逻辑推理可以知道,实际上r9c7虽然在交集上,但它实际是属于橙色数字2、3、8所在宫的这一部分单元格的,而最终的删数是确定在9宫里。也就是说,实际上这个r9c7是为了保证结构数字足够推理才用上的单元格,它并没有被认为是处于交集上面:如果这个r9c7我们不看的话,结构涉及的所有数字一共有5种,但一共只有4个单元格,是不能保证推理有效的,因为从推理的过程角度来说,数字种类数必须等于涉及的单元格总数是满足 SdC 的要点之一。
观察第二阶段:当我们已经通过第一阶段的验证后,我们就需要在刚刚涉及的那两个区域里去找合适的单元格了。为了保证推理的有效性,我们得尽量去找不涉及其他数字的单元格。

举个例子。还是这个例子。如果我们已经发现到r13c7了,那么我们就进入第二阶段。现在我们去7列和3宫找其它的空格。找的这些空格涉及的数字尽量不要有除了刚才交集出现的其它数字。比如r13c7此时是只有3、4、7、8的,那么我们在两侧找的单元格最好不要有3、4、7、8以外的其它数字。可以很轻松地发现,r6c7只有4和7,恰好是3、4、7、8的一部分,我们就可以直接作为结构的一部分取出来了;既然7列已经选中了单元格,那我们就不必再在7列其它地方上再找单元格了:因为我们要的4和7在7列出现的情况已经达到“饱和”;此时我们只需要去找3宫,看有没有只有3和8的单元格。
运气非常好,我们发现了只有3和8的单元格。于是 SdC 就直接成立了:因为第三点和第四点此时我们已经不用去验证了:第三点要求(不跨区)是在我们找数字的时候就已经约束了的;而第四点(总数相等)也不必看了:交集两个单元格+7列取出的一个单元格+3宫取出的一个单元格,一共4个单元格。不同数字种类数也是4。
再来看后面这个例子:

这个例子稍微复杂一点,不过依旧这么去看。我们先找到交集r9c89。然后我们就去行上找1、2、3、6、8。我们发现其中一侧只有1和6,那么另外一侧我们就需要找的数字是2、3、8。而现在已经取出了r9c389一共三个单元格了,所以我们下一步要在9宫里找5-3=2个单元格,且这两个单元格里只能出现2、3、8。
果不其然,r89c7满足要求。所以 SdC 成立。
Part 3 非常难找到的例子

如图所示,这个例子非常难找到,不过它确实不满足前面两个阶段的找法。我们确实满足了第一阶段的要求,找到了r12c1是满足差2要求的;但第二点我们怎么着都找不到,因为里面出现的数字2、3、4、5、6、8实在是太多了……我们如果在其中一侧定好了要找的数字后,我们另外一侧就得找其它的所有数字。
比如这个题,按照基本的找法是确定2和4。但是发现,1宫并没有只有2和4的单元格,所以第二阶段我们无从下手。不过别急,这里我们就要提第三阶段了。
观察第三阶段:如果第二阶段无法解决的,我们就尝试去延伸单元格。比如这个题目里,2和4本来需要一个单元格就足够了(这里思考一下为什么2和4只需要一个单元格,而不是2个,而不是3个甚至更多),但是确实找不到这样的单元格。于是我们就去找1宫里所有2和4涉及的单元格(r12c1我们这里就不说了,剩下的还有r1c23)。那么r1c23有个奇妙的地方是,它们都只多了一个7出来,没多别的数字。如果我们把7也吸纳到结构里的话,那么我们就可以认为,2、4、7是在1宫里出现的数字了,那么剩下的1列就需要找到的数字就不能有2、4、7,而只能是3、5、6、8。当然了,前面说可以加格子,那么涉及的数字甚至可以含有1和9。
实际上这个例子确实是这样的:我们找到了r35789c1,里面涉及的数字甚至把1和9这个局外数字也算进来了。
数一下总单元格数:r35789c1(5个单元格)+r12c1(交集两个单元格)+r1c23(两个单元格)=出现的数字种类数(1、2、3、4、5、6、7、8、9一共9种,全齐了)。刚好满足等式要求。跨区我们也在前面第二和第三阶段里保证了,所以,SdC 是成立的。
这便是 SdC 的观察方式,我不知道你们看懂了几成内容。不过我相信,今天不懂没关系,隔一段时间,自己功力提升了再来看,就会明白不少;然后再隔一段时间来看,基本上就能搞定了。
Part 4 自噬 SdC 呢?为啥没提到?

实际上很对不起大家的是,自噬 SdC 在基本的 SdC 的要求上加了一点:所有涉及的数字里有一个数要在两侧出现两次(也就是说要跨区)。这个数字是唯一的,比如这个例子里,数字8是唯一结构里所有数字里跨了区的那个。还记得跨区的定义吧:我们能找到一个区域,把结构里涉及的所有这个数字全框起来,那么这个数就不叫跨区(换一种说法就是,这个数只在这个区域里出现了)。
基本观察思路完全一致,但只有一个地方变了:那个等式两边现在不相等了,而实际上,单元格数要比数字种类数要多1个。比如这个题用了8个单元格,但出现的总数字数只有7种,8是跨区的所以实际上要算两次才能相等,所以等式变成不等式了!