EH的数独杂谈#10 超实用技巧整理
--------目录--------
一、最基本的技巧
1. 摒除与唯余
2. 数组
3. 区块
二、致命与致死结构类技巧
1. 唯一矩形(UR)
2. 全双值格致死(BUG)
三、各种Wing
1. X-Wing(二链列)
2. XY-Wing(双分支匹配)
3. XYZ-Wing(三分支匹配)
4. W-Wing
四、链的常用构型
1. 双强链
2. 远程数对
--------------------
在综合篇中,笔者将为大家展开新的视角,通过对构造、毛刺、秩理论等思想方法的讲解,帮助大家更灵活地运用现有的技巧解决高难度的数独题目。
作为综合篇的第一章,有必要先将常用的技巧进行总结,以免后续内容给读者造成理解上的困难。
一、最基本的技巧
1. 摒除与唯余
摒除与唯余这两种方法,只要各位接触过数独并了解它的规则,不学也是学了。
摒除分为两大类:宫摒除和行列摒除。
宫摒除实例见图10-1-1。根据数独规则,数字3在第5宫里只有一种填法。
行/列摒除实例见图10-1-2。在第4列上,数字7的填法只有一种。
虽然宫摒除和行列摒除都是基于数字的位置进行填数操作,但宫摒除观察起来更方便。
相对于摒除“用同一种数字解题”的思想,唯余则是使用“一个单元格”,观察其能看到的数字从而得解。
别看我说得这么绕,其实唯余最简单的形式你总能见到,比如图10-1-3的第一行:
这种一行/列/宫里只有一种数字未填的情况,就算是唯余最简单的形式了,有时被称作“满汉全席”(Full House)。
当然唯余的一般形式见10-1-4,提示数遍及行、列、宫。试着理解一下高亮的蓝色单元格应该填多少吧!
2. 数组
数组描述了一种“n个数字填入同一行/列/宫的n个单元格”的情形,虽然不能直接确定具体的填数方式,但对外仍然有排除的功能。
数组也分两种:显性数组和隐性数组。
显性数组的实例如图10-1-5所示。注意到r5c12(绿色框部分)必然一个填4,另一个填5。现在考察蓝色格,其所在的列还有347三种数字未填入。这个蓝色格能被左边的给定数7和45数组看到,所以不能是4和7,必须填3。
隐性数组的实例如图10-1-6所示。2宫还有256789六种数字未填。由于橙色格子的作用,2宫里的紫色格子都不能填568三种数字的任何一种。也就是说,568三种数字在2宫被“挤进了”红框的三格内。所以红框三格只能填568,进而紫色格子只能填279。此后,根据第三行的给定数79,唯余得到r3c4=2;根据第6列的给定数8,摒除得到r3c5=8。
细心的朋友们会发现,r3c4=2其实只需要一步唯余就能得到,r3c5=8也只需要一步摒除就能得到。但笔者是想借助这个例子说明显性数组与隐性数组的不同之处:前者利用明确的数组进行对外排除,后者则是通过分析区域内多种数字的占位进行对内分组。
3. 区块
如果说数组是通过多种数字占位来排除,那么区块则是用一种数字占位来排除。
例如图10-1-7,我们分析4列里填入数字5的情况,会发现r39c4两格可以直接被5看到,不能填5。同时,1宫5向下也能对4宫作摒除,导致4宫的5只能填入r5c12两格内,因其位于同一行,而构成一个有效的区块。这样,r5c4也不能填5,从而r4c4=5。
像数组一样,区块里的数字也暂时不知道要填在哪儿,但无论如何都可以对外排除一些填数情况,甚至直接得到填数。
这四种基本技巧构成了数独的最基础方法。它们虽然思路各异,各有特点,却又蕴含着内在的联系,需要大量的练习方能发掘。
二、致命与致死结构类技巧
请再次注意:致命与致死结构类技巧都必须建立在“数独有且仅有唯一解”的基础上。
1. 唯一矩形(UR)
唯一矩形是最简单、最好观察的一类的致命结构。正因为其形式太过简单,在原则上只需要用到数组/区块的题目里,你依然可以巧用UR来逃课!
关于UR的知识点,本人在下面的链接里进行过整理。没有阅读过的小伙伴建议仔细阅读;对于已经掌握的小伙伴,为了避免实践中出错,请再次复习UR成立的条件,尤其是第二条:
(1)必须是涉及4个单元格内的两种候选数,这4格必须构成矩形。
(2)这4格只能分属两个宫内。
2. 全双值格致死(BUG)
致死结构其实是致命结构的延展。在致命结构的篇章,我们说到“局部多解,就等同于全盘无解”。特别地,当这个局部恰好就等同于全盘的时候,就无所谓“局部多解”,只剩下“全盘无解”,也就是致死。
为了讲清楚“致死”的逻辑,请看图10-2-1:
做一个小小的实验:我们把r7c3的9去掉,你会发现,每个单元格有且仅有2种候选数;在任何一个行、列、宫内,每种候选数有且仅有2次出现。此时,无论你试图按何种方法试数,都会在某一处发现矛盾。
现在给出全双值格致死(BUG)的确切定义:
全双值格致死(BUG)是一种不该出现的形式,它同时满足如下两个条件,特别要注意第二条:
(1)未填入数字的每个单元格都是双值格(即有且只有2个候选数的单元格);
(2)在每一行、列、宫内,所有已现候选数种类都有且仅有两次出现。
反过来说,不满足这两条的结构也就称不上BUG。
我们回到图10-2-1,你会发现去掉r7c3的9之后,剩余的部分恰好满足上面的两个条件。像r7c3(9)这样一旦全部去除就会造成BUG的候选数,我们称之为真数。显然为了避免BUG的出现,所有真数至少有一个成立。
在图10-2-1中,真数只有一个,就是r7c3(9),于是直接得到r7c3=9。在差点形成BUG的结构中,只有一个真数的情况就称为BUG+1。类似地,有n个真数的情况是BUG+n。
现在来看一个BUG+2的例子,如图10-2-2所示。
注意到去除两个绿圈数字后,盘面变成了BUG形式,因此原盘面称为BUG+2。由于真数至少有一个成立,因此两个绿圈数字成强关系。对一端进行延拓,得到链
r1c4(4)=r7c6(2)-r2c6(2=4)
产生删数r1c5<>4。
当然,这题可以更简单地用UR来解,本例只是为了说明BUG+n的使用方法。此外,本例包含了构造的思想,将会在第11章进行介绍。
三、各种Wing
注:除了X-Wing是鱼(非链)以外,其余的Wing都是链的特殊形式。
1. X-Wing(二链列)
X-Wing在本系列的8-1已有讲解。传送门:
2. XY-Wing(双分支匹配)
XY-Wing在难度为3-4星的题目中用途广泛。它的一般形式如图10-3-1所示。通过链的关系,很容易得到
r5c2(6=1)-r5c4(1=4)-r4c5(4=6)
从而产生删数r5c5<>6。
作为一种特殊的链,XY-Wing有自己的一种观察方法:
(1)先找到一个含有xy两个候选数的单元格(比如r5c4,此时xy分别是1和4);
(2)寻找两个单元格,其分别包含候选数xz和yz,并分别与刚才的单元格同区(比如r5c2和r4c5,此时z=6;前者和r5c4同行,后者和r5c4同宫),同区的规定是为了弱链能够相互链接;
(3)则两个z成强关系,可能产生删数。
3. XYZ-Wing(三分支匹配)
XYZ-Wing与XY-Wing相比,只是“中间”的单元格多了一个z值。它的一般形式如图10-3-2所示。
为了理清XYZ-Wing的逻辑,分两种情况讨论:
(1)r5c5<>4,此时r5c5,r4c5和r5c9构成XY-Wing,知r4c5(4)和r5c9(4)至少有一个成立。
(2)r5c5=4。
总之画橙色圆圈的三个4至少一者成立,它们可以共同删除r5c4(4)。
XYZ-Wing的寻找方式与XY-Wing非常类似,差别只在于第一个单元格必须同时包含xyz三种数字。
值得注意的是,刚才XYZ-Wing的分析包含了毛刺的思想,将会在第12章进行介绍。
4. W-Wing
W-Wing的逻辑与刚才提到的XY-Wing有一些差异,但本质上还是一种特殊的异数链。W-Wing的一般形式见图10-3-3。
根据图示,有链r9c6(8=5)-r7c46(5)=r7c2(5)-r8c2(5=8),产生关于8的删数。
W-Wing的一般观察方法如下:
(1)找到两个只包含ab两种候选数的单元格(例如r8c2和r9c6,此时ab代表5和8);
(2)找到一条关于a(或者b)的强链,强链的两端应分别通过弱链与两个单元格的a(或者b)相连(例如r7上关于5的强链,这条链两端分别通过弱链连接到r8c2和r9c6的5);
(3)则这两格的b(或者a)成强链(例如这两格的8)。
四、链的常用构型
1. 双强链
在所有链中,以“强弱强”连接的同数链是最基本的形式。因为只包含两条强链,又称为“双强链”。
它的一般形式见图10-4-1,其逻辑和删数在图上一目了然。
除了一般形式外,有时两个强链都是水平/竖直的。当它们平行时即构成摩天楼(Skyscraper),正交(垂直)时构成双线风筝(2-String Kite)。摩天楼和双线风筝是双强链的两种特殊形式,如图10-4-2和10-4-3所示。
2. 远程数对
远程数对(Remote Pair)是一种特殊的链,本质是两种候选数的链关系在相同单元格内重叠而形成的特殊情况。
远程数对的一般构型如图10-4-4所示。它的形式是一组只含xy两种候选数的单元格,任取任何一种候选数都可以构成一条单独的链。当然,也可以用袋鼠(数独的包装技巧之一)来理解。总之,远程数对的两端必然填入不同的数字。
在下例中,包含45候选数的单元格就构成这样的远程数对,两端必然一个填4一个填5,总之有删数r4c2<>45。
小结:
小结就在目录里。这些技巧都是数独中常用的方法,不涉及艰深的理论。其至少可用于解决SodoCool关卡模式的4星关,在5星关解题时也可起到辅助和收尾作用。