趣味数独:区块排除法

2024-11-05 00:00:00江安海
老年博览·上半月 2024年10期

应用前几期介绍的基础算法已经不能得出首解的时候,怎么办?

我们试着解一下图1中的这道题。

先看第一宫,因为R8C3=1,所以R(1,2,3)C3≠1,那么空格R1C1和空格R1C2的值必然有一个为1,即R1C(1,2)=1。

在标准数独中,若干个空格组合的性质能对其他空格的取值产生影响,我们就称这些空格构成了区块。

例如,因为R1C(1,2)=1,空格R1C1和空格R1C2就构成了一个区块,这个区块的存在,使第一行中其他格的数字不可能是1。

这种根据区块的性质进行数字排除的方法就是区块排除法。区块排除法是排除法的进阶应用。

下面对图1中的例题逐步求解。

第1步:应用区块排除法,R1C(1,2)=1,第二宫的R2C6=1,如图2。

取得首解后,马上就会有柳暗花明又一村的感觉,可以继续逐步求解,如图3。

第2步:应用列排除法,第六列的R7C6=2。

第3步:应用宫排除法,第八宫的R7C5=8。

第4步:应用宫排除法,第八宫的R9C5=1。

第5步:应用宫排除法,第九宫的R7C7=1。

第6步:应用区块排除法,R1C(1,2)=1,第三宫的R3C9=1,如图4。

第7步:应用列排除法,第九列的R6C9=9。

第8步:应用宫排除法,第三宫的R3C7=9。

第9步:应用余数唯一法,点算,R4C7=5。

第10步:cZPc8SLw66NrBufkC1bBdQ==应用区块排除法,R8C(4,5)=9,第七宫的R7C3=9。

第11步:应用行排除法,第四行的R4C2=9。

第12步:应用行排除法,第四行的R4C1=1。

第13步:应用宫排除法,第一宫的R1C2=1。

第14步:应用宫排除法,第五宫的 R5C4=9。

第15步:应用宫排除法,第八宫的R8C5=9。

第16步:应用宫排除法,第六宫的R6C8=8。

第17步:应用区块排除法,R(1,2,3)C3=8,第四宫的R5C2=8。

余下空格的数字应用基础算法均可以得出解,不再赘述。

上面例题中的区块是由排除法形成的,这种方法形成的区块更容易被发现。此外,通过余数法也可以形成区块。区块中的格有两个或三个,并且都是同行或同列,这样形态的区块更容易应用。

下面试着挑战一下后面的习题吧!