三鏈列刪減法

(Swordfish)

概說
  • 遇到了高級、困難級的數獨謎題,使得唯一候選數法 隱性唯一候選數法黔驢技窮的時候,就是各種刪減法上場的時機了。在各種的刪減法中,哪一個要先用 是隨個人之喜好的,並無限制。本頁介紹的例子當然可用其他刪減法完成解題,且本刪減法成立的條件 和其他方法相比稍嫌繁雜,但為了介紹,在進行解題時還是要以三鏈列刪減法優先囉!
    <圖 1>
  • 請看<圖 1>第 1、4、6 列的數字 5 ,都只出現在第 1、5、8 行的宮格候選數中;這時 三鏈列刪減法的條件已成立了!這表示第 1 行、第 5 行及第 8 行的數字 5 將只能被填到第 1 、4、6 列了,因為:第 1 列的數字 5 只出現在(1, 1)及(1, 8),所以數字 5 只能填到這兩個宮格;
    1. 先假設第 1 列的數字 5 將被填到(1, 1),第 1 行就不能再填數字 5 了,所以第 4 列 的數字 5 只好填到(4, 5),第 6 列的數字 5 只好填到(6, 8);
    2. 另外,假設第 1 列的數字 5 將被填到(1, 8),第 8 行就不能再填數字 5 了,所以第 6 列的數字 5 只好填到(6, 1)或(6, 5);
      1. 如果第 6 列的數字 5 填到(6, 1),第 4 列的數字 5 就要填到(4, 5);
      2. 如果第 6 列的數字 5 填到(6, 5),第 4 列的數字 5 就要填到(4, 1);
    不論哪一種情況發生,第 1、5、8 行的數字 5 一定要填在第 1、4、6 列的交點,別的宮格已不能再使用 數字 5 來填入了,所以若其他宮格的候選數中還有數字 5,全部是多餘無用的, 可以毫不考慮的把它們刪減掉。於是(5, 1)、(5, 5)、(9, 5)和(2, 8)這四個宮格候選數中的 5 都可被安全的刪減掉;其中(9, 5)的候選數少了數字 5,將使得(9, 4)出現列隱性唯一候選數 5 ,於是 可用隱性唯一候選數法來填入下一個解了。
  • 整理一下:
    1. 當某個數字在某三列僅出現在相同的三行時,就可以把這三行其他宮格候選數中的該數字刪減掉。
    2. 同理,當某個數字在某三行僅出現在相同的三列時,就可以把這三列其他宮格候選數中的該數字刪減掉。
  • 利用「找出某個數字在某三列僅出現在相同三行的情形,進而將該數字自這三行其他宮格候選數中刪減掉」; 或「找出某個數字在某三行僅出現在相同三列的情形,進而將該數字自這三列其他宮格候選數中刪減掉」的方法 就叫做三鏈列刪減法(Swordfish)。
  • 本刪減法其實是矩形頂點刪減法的推廣,如果你願意的話,還可以繼續推廣:
    1. 四鏈列刪減法:利用「找出某個數字在某四列僅出現在相同四行的情形,進而將該數字自這四行其他宮格 候選數中刪減掉」;或「找出某個數字在某四行僅出現在相同四列的情形,進而將該數字自這四列其他 宮格候選數中刪減掉」的方法
    2. 五鏈列刪減法:利用「找出某個數字在某五列僅出現在相同五行的情形,進而將該數字自這五行其他宮格 候選數中刪減掉」;或「找出某個數字在某五行僅出現在相同五列的情形,進而將該數字自這五列其他 宮格候選數中刪減掉」的方法
    3. 六鏈列刪減法:...... 不過如果真的這樣做,實際應用時,能夠用上的機率大概不多就是了。
  • 遇到了高級、困難級的數獨謎題,使得唯一候選數法 隱性唯一候選數法黔驢技窮的時候,雖然你可以優先使用三鏈列刪減法來尋找下一個解;但大部分的人在 使用刪減法的優先順序上,通常都會將三鏈列刪減法排在稍後一點,為什麼要如此安排,在實際使用一段時間之後, 相信你自能體會了,但這個方法又是不可或缺的,如果不會運用本刪減法,有很多高級的數獨謎題就將無解了。
三鏈列刪減法示例
  • 三鏈列刪減法只有 2 種狀況:第一種的刪減發生在行、第二種的刪減發生在列。<圖 1> 就是 刪減發生在行的例子了,第二種的情況舉例如下:
    <圖 2>
  • <圖 2> 是三鏈列刪減發生在列的例子:圖中第 3、5、8 行的數字 2 只出現在第 3、4、5 列, 所以可以將數字 2 自(4, 6)、(5, 6)的候選數中安全的刪減掉,其中(5, 6) 的候選數由 2、5 刪減成 5 時,出現唯一候選數啦!
 
 
 
本網頁建置日期:94.09.08 | 最近更新日期:94.09.08  | 回上頁 | 回首頁 |