概说
遇到了高级、困难级的数独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用
是随个人之喜好的,并无限制。本页介绍的例子当然可用其他删减法完成解题,且本删减法成立的条件
和其他方法相比稍嫌繁杂,但为了介绍,在进行解题时还是要以三链列删减法优先??!
<图 1>
请看<图 1>第 1、4、6 列的数字 5 ,都只出现在第 1、5、8 行的宫格候选数中;这时
三链列删减法的条件已成立了!这表示第 1 行、第 5 行及第 8 行的数字 5 将只能被填到第 1 、4、6 列了,因为:第 1 列的数字 5
只出现在(1, 1)及(1, 8),所以数字 5 只能填到这两个宫格;
- 先假设第 1 列的数字 5 将被填到(1, 1),第 1 行就不能再填数字 5 了,所以第 4 列 的数字 5 只好填到(4, 5),第
6 列的数字 5 只好填到(6, 8);
- 另外,假设第 1 列的数字 5 将被填到(1, 8),第 8 行就不能再填数字 5 了,所以第 6 列的数字 5 只好填到(6,
1)或(6, 5);
- 如果第 6 列的数字 5 填到(6, 1),第 4 列的数字 5 就要填到(4, 5);
- 如果第 6 列的数字 5 填到(6, 5),第 4 列的数字 5 就要填到(4, 1);
不论哪一种情况发生,第 1、5、8 行的数字 5 一定要填在第 1、4、6 列的交点,别的宫格已不能再使用 数字 5
来填入了,所以若其他宫格的候选数中还有数字 5,全部是多余无用的, 可以毫不考虑的把它们删减掉。于是(5, 1)、(5, 5)、(9, 5)和(1,
8)、(2, 8)这五个宫格候选数中的 5 都可被安全的删减掉;其中(9, 5)的候选数少了数字 5,将使得(9, 4)出现列隐性唯一候选数 5
,于是 可用隐性唯一候选数法来填入下一个解了。
整理一下:
- 当某个数字在某三列仅出现在相同的三行时,就可以把这三行其他宫格候选数中的该数字删减掉。
- 同理,当某个数字在某三行仅出现在相同的三列时,就可以把这三列其他宫格候选数中的该数字删减掉。
利用“找出某个数字在某三列仅出现在相同三行的情形,进而将该数字自这三行其他宫格候选数中删减掉”;
或“找出某个数字在某三行仅出现在相同三列的情形,进而将该数字自这三列其他宫格候选数中删减掉”的方法
就叫做三链列删减法(Swordfish)。
本删减法其实是矩形顶点删减法的推广,如果你愿意的话,还可以继续推广:
- 四链列删减法:利用“找出某个数字在某四列仅出现在相同四行的情形,进而将该数字自这四行其他宫格
候选数中删减掉”;或“找出某个数字在某四行仅出现在相同四列的情形,进而将该数字自这四列其他 宫格候选数中删减掉”的方法
- 五链列删减法:利用“找出某个数字在某五列仅出现在相同五行的情形,进而将该数字自这五行其他宫格
候选数中删减掉”;或“找出某个数字在某五行仅出现在相同五列的情形,进而将该数字自这五列其他 宫格候选数中删减掉”的方法
- 六链列删减法:...... 不过如果真的这样做,实际应用时,能够用上的机率大概不多就是了。
遇到了高级、困难级的数独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,虽然你可以优先使用三链列删减法来寻找下一个解;但大部分的人在
使用删减法的优先顺序上,通常都会将三链列删减法排在稍后一点,为什么要如此安排,在实际使用一段时间之后,
相信你自能体会了,但这个方法又是不可或缺的,如果不会运用本删减法,有很多高级的数独谜题就将无解了。
三链列删减法示例
三链列删减法只有 2 种状况:第一种的删减发生在行、第二种的删减发生在列。<图 1> 就是
删减发生在行的例子了,第二种的情况举例如下:
<图 2>
<图 2> 是三链列删减发生在列的例子:图中第 3、5、8 行的数字 2 只出现在第 3、4、5 列, 所以可以将数字 2
自(4, 6)、(5, 6)的候选数中安全的删减掉,其中(5, 6) 的候选数由 2、5 删减成 5
时,出现唯一候选数啦!
|