本篇要介绍的是一种适合在纸上做题时使用的技法——Coloring,即色彩标记法。Coloring包括适用于单一候选数的Simple Colors和Multi Colors,以及适用于多个候选数的3D Medusa。Coloring的本质依然是链,其工作原理是,在数独盘势里找出特定数字的所有强链数对(在链及其简单应用中,曾介绍强链可对应矛盾关系和下反对关系,Coloring要使用的是对应矛盾关系的强链,我们在此处将之称为conjugate pair),用不同的色彩依序标记,将强弱关系用相异的颜色直观的表现出来,进而找到逻辑矛盾点,实现对相关候选数的删减。相较于找链的方法,Coloring显得稍微无脑一点,其优点在于,如果找到逻辑矛盾,有时可以一次进行大量的候选数删减。需要注意的是,只有在盘势中存在很多conjugate pair时,才可以考虑使用Coloring。
一、Simple Colors
Simple Colors只使用两种颜色A和B,具体操作步骤是:从盘势中构成conjugate pair的候选数X所在的一格入手,标记颜色A,然后给与之成对的另一格标记颜色B,再从标记了颜色B的X出发,继续寻找与之构成conjugate pair的X,并标记颜色A,不断重复这一过程,且保证构成conjugate pair的两格颜色相异,直至无法找到下一个conjugate pair,结束标记过程。
由于Coloring使用的是对应矛盾关系的强链,不同颜色标记的X必然是一真一假,既不能同真也不能同假,而同色的X显然具有相同的真假值,由此可得到Simple Colors的两种删减规则:
1、Color Trap——在未着色格中,能够同时看到(“能够看到”亦即处于同一Unit)不同颜色标记的候选数X应被删除。(由前述可知,不同颜色标记的候选数X之间为强关系,必有一真,能够同时看到不同颜色标记,则其处于构成强关系的两个X的共同作用范围内)
2、Color Wrap——若两个同色的X出现在同一Unit中,则应删去所有该色的X,另一种颜色的X为真。(同色的X具有相同的真假值,若其出现在同一Unit中,显然只能同假)
来看实例:

在上图盘势中,我们发现存在很多数字3的conjugate pair,考虑采用Coloring。从R1C4出发开始依序用深浅不同的色彩给所有conjugate pair标记颜色,直至无法找到下一个conjugate pair为止,标记完成后,发现R8C1、R13C9格中的3(红色)可以同时看到深浅不同的3,按照Color Trap规则,应将其删除。

图2是Color Wrap规则的一个应用,完成数字8的色彩标记过程后,发现有浅色格同处于一个Unit中,可删去所有浅色格中8。
二、Multi Colors
Multi Colors 是Simple Colors的补充,对于特定候选数X,若完成Simple Colors所有步骤后,发现无法实现删减,同时,盘势内存在不能与之前Simple Colors标记的AB色彩系连接起来的其他conjugate pair,就可以采用另一组颜色ab对其他conjugate pair进行标记,再根据这两组色彩系彼此的位置关系,找到矛盾点,进行删减。
规则1:不同色彩系的两种颜色若处于同一Unit中(不能同真,必然是弱关系),则其在各自的色彩系中相对应的另两种颜色之间,构成强关系(各自色系内两种颜色间构成强关系,然后用同宫的弱关系加以联接,形成强弱强链),可删除在其共同作用格内的未着色的数字X。
来看实例:

上图中,从R1C5开始对候选数1的conjugate pair进行Simple Colors,完成后发现无法进行删减,于是再从R2C9开始进行第二组色彩标记,发现有浅橙色和深蓝色格处于同一Unit,则深橙色与浅蓝色格的候选数1构成强关系,能够同时看到深橙色和浅蓝色格(即处于其共同作用格内)的未着色的1(红色)应被删除。
规则2:若两个相同颜色A标记的候选数X可以分别看到另一色系中不同颜色a和b标记的候选数,则可删除所有颜色A标记的候选数X,颜色B标记的X为真。其原理是,同色具有相同的真假值,而在自己色彩系内,异色之间为强关系,不能同假。此时若A为真,A所看到的颜色a和b标记的候选数就必须同时为假,出现矛盾,所以A不能为真。
图4中,对候选数3进行Coloring作业,完成后发现,浅橙色R6C2格可以看到浅蓝色格,浅橙色R8C6格可以看到深蓝色格,由于深蓝、浅蓝格中的3不能同假,则浅橙色格必然同假,可删去所有浅橙色格中的3(红色)。

三、3D Medusa
Simple Colors和Multi Colors都只作用于单一候选数,而3D Medusa则籍由双值格这种特殊的conjugate pair将Coloring的规则扩展至多个候选数。如果我们将数独中的每个数字都视作一个维度,那么3D Medusa就是多维的,这也是其得名原因之一。
我们先以一个实例介绍3D Medusa操作步骤。

步骤1:寻找合适的入手候选数
图5的盘势无法用基础解法得解,我们可以考虑使用Coloring法,在这个盘势中,可以看到候选数3存在大量的conjugate pair,且其中有8个是双值格的形式,因此我们可以选择候选数3起手进行色彩标记,利用这些双值格将色彩标记扩展到其它数字。
步骤2:进行Simple Colors作业

步骤3:给双值格中不是3的候选数标记与3相异的颜色

步骤4:从双值格中不是3的候选数出发,寻找conjugate pair继续进行标记(熟练后可以将步骤2、3、4合并,一次完成)
本例中,我们从3所在双值格中的7、8、9出发,进行标记作业,直至无法寻找到新的conjugate pair,最终得到图8的盘面。

现在,我们就可以根据以下规则分析这个盘面并进行删减。
规则1:相同的颜色出现在同一格内,则应删除所有该颜色的候选数 ,另一种颜色标记的候选数为真。(同色具有相同真假值,出现于同一格内只能同假)
规则2:相同颜色的候选数X出现在同一Unit内,则应删除所有该颜色的候选数,另一种颜色标记的候选数为真。(理由同规则1)
规则3:若相同颜色标记的多个候选数均可以联接到某个未着色格(该格仅由未着色的前述候选数组成,其内不存在其他候选数),则可删去所有该颜色标记的候选数,另一种颜色标记的候选数为真。(理由同规则1,若该色为真,则未着色格将会是空格)
规则4:某个多值格内有2种颜色出现时,则应删除该格内没有着色的候选数。(异色之间为强关系,必有一真,以链的观点来看就是nice loop)
规则5:处于颜色相异的候选数X的共同作用格内的未着色数字X应被删除 。(理由同规则4)
规则6:当颜色相异的候选数X、Y出现在同一Unit时,应删除彼此格内未着色的Y、X。本规则亦可表述为,若未着色的某候选数X在其所在Unit可以看到标记了色彩A的X,且其所在格内存在标记色彩B的其他候选数时,可删除该未着色的候选数X。(理由同规则4,以链的观点来解释是Discontinuous Nice Loop)
在本例中,r9c4中的候选数7可以看到两种颜色的7:

因此,我们可以根据规则5删除该格中的7,这个格中可以填入的数字就是剩下的2。
来看一些其他规则的删减实例。
图10中,H2格出现同为黄色的候选1、3,根据规则1,可删除所有黄色候选数,绿色候选数可以填入所在格中。

图11中,第7列中存在两个黄色的7,根据规则2可删除所有黄色候选数,填入绿色候选数。

图12中,C1中的2、5可以看到的同为黄色的2、5,根据规则3,可删除所有黄色候选数,填入所有绿色候选数。其逻辑是,若黄色候选数为真,则R3C1格中将没有数字可被填入。

图13是同样的道理,C6可以看到黄色的同为4、6、9, 根据规则3,可删除所有黄色候选数,填入所有蓝色候选数。

图14中,C2格内存在颜色相异的3和7,必有一真(分色法的逻辑是,相同的颜色具有同样的真假值,相异的颜色则必有一真),根据规则4,可删除C2中的8。(Nice Loop)

图15中,C2和C8中的6都可以看到蓝色和绿色的6,根据规则5应被删去。

图16中存在4组根据规则6进行的删减,请大家找出对应的删减,以加深理解。

网友评论