<图 3>
再看一个例子吧!在< 图 4 >中,同样的,不论你使用基础摒除、区块摒除、唯一解、唯余解或单元摒除等各种 直观式的解题法,应该都没办法找到下一个解了。这时只好换用矩摒除上阵啦!
<图 4>
在< 图 4 >中:由于(2, 9)的摒除,使得数字 9 可填入第 3 列的位置只剩下 (3, 1) 及 (3, 5); 由于(6, 8)的摒除,使得数字 9 可填入第 4 列的位置只剩下 (4, 1) 及 (4, 5); 因为这四个宫格恰好构成一个矩形的顶点,所以:
1. 如果第 3 列的数字 9 填在 (3, 1),因为第 1 行只能有一个数字 9,所以
第 4 列的数字 9 只能填到 (4, 5)。
2. 如果第 3 列的数字 9 填在 (3, 5),因为第 5 行只能有一个数字 9,所以
第 4 列的数字 9 只能填到 (4, 1)。
不论哪一个状况产生,第 1 行及第 5 行的数字 9 都只能填在(3, 1)、(3, 5)、(4, 1) 及 (4, 5)这四个位置 中的其中两个对角位置,不可能填到其它宫格去,所以可以将第 1 行及第 5 行其它宫格填入数字 9 的可能性摒除。
<图 5>
第 5 行的矩形摒除,使得 (9, 7) 出现了下中九宫格摒除解 9 了。
<图 6>
多重摒除
和其它的摒除法一样,有些数独谜题是无法以单一摒除法得出解的,必须综合运用两种以上的摒除法才能顺利得到 下一个解,下面这个例子就是必须同时运用矩形摒除及区块摒除法才能在中央九宫格找到九宫格摒除解 1 的例子:
<图 7>
由于 (9, 2) 及 (4, 9) 的摒除,使得数字 1 可填入中左九宫格的位置只剩下 (5, 1) 及 (5, 3), 构成了区块摒除的条件:
<图 8>
同样由于 (9, 2) 及 (4, 9) 的摒除,使得数字 1 可填入第 2 列的位置只剩下 (2, 5) 及 (2, 8); 数字 1 可填入第 8 列的位置只剩下 (8, 5) 及 (8, 8)。构成了矩形摒除的条件:
<图 9>
运用前述第 5 列的区块摒除、第 5 行的矩形摒除,使得 (6, 4) 出现了中央九宫格摒除解 1 了。
<图 10>
余数测试法 前言
如果您已是入门的玩家,对直观法的各式摒除法已有了相当的认识,请回想一下:是否常会忽略了 行摒除解、列摒除解的寻找,对于唯余解更是头大,拒之犹恐不及,必须等到将所有数字都搜寻一遍之后, 才会想到是否有行摒除解、列摒除解或唯余解,但又因不擅于快速找到唯余解,使得解题的时间拉得很长!
为了弥补以上所提及的盲点,采用余数测试法不失为一个有效的选择。
所谓余数测试法就是某一个单元(行、列或九宫格)待填的数字已降到 3 个以下时(有时以基础摒除加区块摒除、 单元摒除仍觉吃力时,仅 4 数时也可勉强进行,但成功机率
较小),就以该单元所余待填的数字来 进行测试的方法。因为目标集中,各项摒除法可灵活运用,不致遗漏。
所以余数测试法其实不是一个新的摒除法,只是在寻找数字解时,由寻找某个数字的可填位置, 改换为寻找某个位置的可填数字而已。
详解
因为余数测试法通常仅在某一个单元(行、列或九宫格)待填的数字已降到 3 个以下时才使用, 所以解题初期还是以九宫格摒除解的系统搜寻进行解题。
< 图 1 > 是一个已进行一轮搜寻的数独谜题,如果仍以九宫格摒除解的系统搜寻进行解题,应该要 再由数字 1 开始,一直到 9,接着进行第二轮的系统搜寻工作。但因为已有第 1、4、6 行、 第 3、4、6 列....等多个单元的待填数字都已在 3 个以下,所以可以换余数测试上阵了。
<图 1>
就先由第 1 行开始进行吧!待填数还剩 8、9 两数,因为 (9, 2) 已有数字 8 了,所以 8 不能再填到同个 单元的 (9, 1),只能填到 (5, 1)去;另一个待填数 9 就只能填在 (9, 1)了。