第二章 探秘六数数独
四数数独是不是太简单了?这一章将增加一点难度,一起来挑战一下六数数独。
一、六数数独及其术语
六数数独的游戏盘面是一个6×6的表格,由36个格构成。
水平方向排列的6个格组成行;垂直方向排列的6个格组成列;粗线条内的2×3六个格组成宫。
同四数数独一样,统称行、列、宫为单元。
六数数独的规则就是:在数独盘面的空格中填上数字1或2或3或4或5或6,要求每一行、每一列以及每一宫中的数字不重复,即每个单元内数字不重复。
如图2.1(a)所示,在本书中规定:
行用R1、R2、…、R6表示,例如R1表示第一行;列用C1、C2、…、C6表示,例如C1表示第一列;宫用第一宫、第二宫、……、第六宫表示。
为了方便清楚地描述问题,特别引进以下的记号。
格的坐标用它所在的行号和列号来表示,如图2.1(b)所示,格X的坐标可以记做R2C3。
如果格X的数字是1,记做R2C3=1;如果格X的数字排除2,记做R2C3≠2。
图2.1 六数数独的盘面及坐标示意图
图2.2中用阴影表示出格A的同位群,六数数独的同位群定义和四数数独相同。如果一个格是另一个格的同位格,那么,这两个格同属于一个单元(行或列或宫),一个格的所有同位格组成了这个格的同位群。六数数独中,一个格的同位群有12个同位格。
图2.2 六数数独格A的同位群示意图
六数数独的术语和四数数独基本相同,例如六数数独习题中,某些单元格中会给定一些数字,也称为提示数。提示数作为取得首解的线索,保证能导出终盘并且终盘解唯一。
在六数数独中,一个空格的余数是指这个空格的同位群中已经出现的数字以外的其它数字。
二、六数数独的算法
已经了解了四数数独的五种基础算法,即单元唯一法、余数唯一法、宫排除法、行排除法、列排除法等,这些算法的解题思路均可以应用到六数数独中。
例题2.1
请尝试解出下面的六数数独习题。
本题有9个提示数,还有27个空白格。先设法得到首解。
第1步:应用余数唯一法,对空格R2C1的同位群中已经出现的数字进行点算,余数只有数字2,因此,R2C1=2。
应用余数唯一法,需要熟悉目标空格的同位群的位置及点算同位群中的已经出现的数字。
第2步:应用余数唯一法,R3C1=3。
第3步:余数唯一法,R3C4=4。
第4步:余数唯一法,R2C4=1。
第5步:宫排除法。因为R4C6=1,因此R4C2≠1及R4C3≠1。第三宫中,只有一个空格R3C3没有被数字1排除,因此R3C3=1。
第6步:宫排除法,第一宫中,R1C2=1。
第7步:单元唯一法,第二行中,只余下一个空格,因此R2C3=4。
第8步:单元唯一法,第三行中,R3C6=2。
第9步:宫排除法,第二宫中,R1C5=2。
第10步:宫排除法,第二宫中,R1C6=4。
第11步:宫排除法,第四宫中,R4C4=6。
第12步:单元唯一法,第二宫中,R1C4=3。
第13步:单元唯一法,第四宫中,R4C5=3。
第14步:单元唯一法,第四列中,R5C4=5。第14步用到了第12步的结果。
第15步:列排除法,因为R5C4=5,因此,第一列中,R5C1≠5,因此R1C1=5。
第16步:列排除法,第五列中,R5C5=1。
第17步:单元唯一法,第一行中,R1C3=6。
第18步:单元唯一法,第一列中,R5C1=6。
第19步:单元唯一法,第五列中,R6C5=4。
第20步:列排除法,第六列中,R6C6=6。
第21步:行排除法,因为R2C2=3,因此,第六行中,R6C2≠3,因此R6C3=3。
第22步:单元唯一法,第六列中,R5C6=3。
第23步:单元唯一法,第六行中,R6C2=5。
第24步:列排除法,第二列中,R5C2=4。
第25步:同理,第三列中,R4C3=5。
第26步:单元唯一法,第四行中,R4C2=2。
第27步:同理,第五行中,R5C3=2。
从例题的解答过程可以看出,六数数独比四数数独的复杂度有所增加,但是,基本的解题算法并没有太大的变化。
常言道,熟能生巧。一起来接受挑战吧!
习题二