趣味数独:标准数独中排除法的应用

2024-08-04 00:00:00江安海
老年博览·上半月 2024年7期

1.宫排除法

宫排除法是标准数独中最常用的算法,即通过宫以外的行(或列)中已经出现的数字对这个宫的若干空格进行排除,当最终在宫中只剩下唯一空格没有被某个数字排除时,这个唯一空格中的值就是该数字。

一个数字出现的次数越多,这个数字对没有出现该数字的宫的排除效果就越好,得出唯一解的概率也越大。

我们试一下应用宫排除法,在如图1所示的例题中找出数字8的全部位置。

第一宫、第二宫、第六宫、第八宫、第九宫中,数字8已经作为提示数出现,只需要找出第三宫、第四宫、第五宫、第七宫中数字8的位置。

第1步:如图2,应用宫排除法,第三宫的R2C7=8。

第2步:如图2,应用宫排除法,第七宫的R9C1=8。

第3步:如图3,应用宫排除法,第四宫的R6C2=8。

第4步:如图4,应用宫排除法,第五宫的R4C5=8。

2.行(列)排除法

如果一个数字在某一行(列)中没有出现,但是该行(列)穿过的宫中出现了该数字,这种情况下多应用行(列)排除法。

实际的解题过程中,行(列)排除法的应用条件比宫排除法更难被发现,需要细心地观察。

应用行(列)排除法时,要尽量选择空格较少的行(列)进行观察,尽量选择出现次数较多的数字进行排除,然后再观察该行中空格所在的列(行)以及该行(列)穿过的宫。

我们试一下,应用行排除法,在如图5所示的例题中找出第四行中数字7的位置。

因为第六宫中R6C8=7,所以R4C(7,8,9)≠7;

因为第一列中R8C1=7,所以R4C1≠7;

因为第三列中R2C3=7,所以R4C3≠7;

因为第四列中R1C4=7,所以R4C4≠7。

综合以上情况,应用行排除法,第四行中R4C6=7。

再试一下应用列排除法,在如图6所示的例题中找出第一列中数字1的位置。

因为第三行中R3C4=1,所以R3C1≠1;

因为第四行中R4C7=1,所以R4C1≠1;

因为第五行中R5C5=1,所以R5C1≠1;

因为第七行中R7C8=1,所以R7C1≠1。

综合以上情况,应用列排除法,第一列中R9C1=1。

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