區塊刪減法

(Single Sector Candidates)

概說
  • 遇到了高級、困難級的數獨謎題時,唯一候選數法 隱性唯一候選數法仍有其黔驢技窮的時候;這時就是區塊刪減法上場的時機了,往後將要介紹的 數對刪減法(Naked Pairs)、隱性數對刪減法(Hidden Pairs)、三鏈數刪減法(Naked Triples)、 隱性三鏈數刪減法(Hidden Triples) 、矩形頂點刪減法(X-Wing)、三鏈列刪減法(Swordfish)都具有類似的特性:使用這 些技巧的目的僅在刪減候選數的數目,刪減之後,還是得使用唯一候選數法和隱性唯一候選數法來 找出下一個解並填入數字的。
  • 當使用唯一候選數法或隱性唯一候選數法找不出下一個解時,到底該先使用哪一個刪減法呢?隨您高興的用吧! 如果你比較擅長使用數對刪減法,那就先用數對刪減法吧!如果你認為區塊刪減法比較好用,那就先用區塊刪減法吧! ......;介紹時總有先後的次序,但並不表示先介紹的就較好用或必須先用哦!只要能達到:「安全刪減掉候選數, 並找出下一個解」的目的,使用哪一種刪減法都是可以的。
    <圖 1>
  • 請看<圖 1>,這時若使用唯一候選數法或隱性唯一候選數法是找不出下一個解來的!就先來試試區塊刪減法吧。 請觀察第 9 行:數字 1 在本行各宮格的候選數中,是不是僅出現在(1,9)∼(3,9)的這一個區塊中?太好了,區塊刪減 的條件已有了;因為這表示第 9 行的數字 1 只能填在(1,9)∼(3,9)的這一個區塊中,而不論填在本區塊 的哪一個宮格中,上右九宮格的其他宮格將因本九宮格已出現數字 1,而不得再填入 1,否則就違反數獨填製的規則 啦!所以(1, 7)∼(3, 7)及(1, 8)∼(3, 8)這兩個區塊的宮格,如果其候選數中包含有數字 1,就可以毫不考慮的 把它刪除掉,因為候選數的意義是可能填入該宮格的數字,而這個數字已不可能再用來填入該宮格中了。啊!太好啦! (1, 7)的候選數中包含有數字 1,所以可以把 (1, 7) 的候選數由 1、6 刪減成 6,於是可用唯一候選數法來填入 下一個解了。
  • 當區塊刪減法的條件成立時,可別高興得太早,因為很有可能找不到可刪減的數字,例如:在<圖 1>的第 1 行中, 數字 2 在本行的各宮格候選數中,僅出現在(4, 1)∼(6, 1)這一個區塊中,而不論數字 2 將來會被填到本區塊 的哪一個宮格中,將使得數字 2 不得再填入(4, 2)∼(6, 2)及(4, 3)∼(6, 3)這兩個區塊中;但請找找看! 這兩個區塊各宮格的候選數中全部沒有數字 2,所以是白忙了一場,條件是成立了,但候選數並未因此而得到刪減。
  • 整理一下,並為了簡化敘述起見,下面所述的「區塊候選數」表示:該區塊的各個宮格候選數的總和。例如(1, 3)∼(3, 3) 的區塊候選數就是(1, 3)的候選數 4、6、7 及(2, 3)的候選數 3、4、6 及(3, 3)的候選數 3、7 的總和: 3、4、6、7 啦!:
    1. 當某一個數字只出現在某行的某一個區塊候選數中時,就可以把該數字自包含該區塊的九宮格之其他 區塊候選數中刪減掉。
    2. 同理,當某一個數字只出現在某列的某一個區塊候選數中時,就可以把該數字自包含該區塊的九宮格之其他 區塊候選數中刪減掉。
    3. 同理,當某一個數字只出現在某個九宮格的某一個區塊候選數中時,就可以把該數字自包含該區塊的行或列之其他 區塊候選數中刪減掉。
  • 利用「找出某一行、某一列或某一個九宮格各個區塊候選數中只出現一次的數字來,並將該數字自包含該區塊的另一個 行、列或九宮格的其他區塊候選數中刪減掉」的方法就叫做區塊刪減法 (Locked Candidates, Single Sector Candidates)。
區塊刪減法示例
  • 區塊刪減法一共有 4 種狀況:第一種是發生在行而去刪減九宮格、第二種是發生在列而去刪減九宮格、 第三種是發生在九宮格而去刪減行、第四種是發生在九宮格而去刪減列。
  • <圖 1> 就是發生在行而去刪減九宮格的例子了,其他的情況舉例如下:
    <圖 2>
  • <圖 2> 是發生在列而去刪減九宮格的例子:因為第 3 列的數字 6 只出現在 (3, 1)∼(3, 3) 這一個區塊, 所以可以將上左九宮格的另兩個區塊 (1, 1)∼(1, 3)、(2, 1)∼(2, 3) 候選數中的數字 6 安全的刪減掉; 於是(1, 1)的候選數 2、6 將被刪減成 2,出現了唯一候選數啦!
    <圖 3>
  • <圖 3> 是發生在九宮格而去刪減列的例子:因為上右九宮格的數字 5 只出現在 (3, 7)∼(3, 9) 這一個區塊, 所以可以將第 3 列的另兩個區塊 (3, 1)∼(3, 3)、(3, 4)∼(3, 6) 候選數中的數字 5 安全的刪減掉; 於是(3, 3)的候選數 5、9 將被刪減成 9,出現了唯一候選數啦!
    <圖 4>
  • <圖 4> 是發生在九宮格而去刪減行的例子:因為中央九宮格的數字 1 只出現在 (4, 5)∼(6, 5) 這一個區塊, 所以可以將第 5 行的另兩個區塊 (1, 5)∼(3, 5)、(7, 5)∼(9, 5) 候選數中的數字 1 安全的刪減掉; 於是(8, 5)的候選數 1、3、7、8 將被刪減成 3、7、8;同理,中央九宮格的數字 7、8 都只出現在 (4, 5)∼(6, 6) 這一個區塊,所以可以將第 5 行的另兩個區塊 (1, 5)∼(3, 5)、(7, 5)∼(9, 5) 候選數中 的數字 7、8 都安全的刪減掉;於是(8, 5)的候選數 3、7、8 將再度被刪減成 3;出現了唯一候選數啦!
  • 像<圖 1>∼<圖 3>這樣,只做一次區塊刪減就找到下一個解的情況固然是不錯,但有時並沒有那麼順心, 像<圖 4>就需要刪減三次才得到下一個解,不過那還算好的了,因為三次的刪減都恰好發生在同一個區塊中, 請看下面發生在不同區塊的情形吧!
    <圖 5>
  • <圖 5> 中的(4, 3)將可利用區塊刪減法得出下一個解,你能夠不看下面的解答,自己找出來嗎?試試!
  • 也許你已經找出答案了,恭喜!也許你還找不出答案,那也沒關係,人有失手,馬有失蹄,總有腦袋被漿糊 糊住而一時失誤的時候,請看答案吧:因為第 8 列的數字 2 只出現在 (8, 1)∼(8, 3) 這一個區塊, 所以可以將下左九宮格的另兩個區塊 (7, 1)∼(7, 3)、(9, 1)∼(9, 3) 候選數中的數字 2 安全的刪減掉; 刪減之後的結果如<圖 6>。
    <圖 6>
  • 接下來,因為第 3 行的數字 2 只出現在 (4, 3)∼(6, 3) 這一個區塊,所以可以將中左九宮格的另兩個區塊 (4, 1)∼(6, 1)、(4, 2)∼(6, 2) 候選數中的數字 2 安全的刪減掉;刪減之後的結果如<圖 7>。
    <圖 7>
  • 哈!哈!看出來了嗎?(4, 3)已出現了列隱性唯一候選數 2 啦!
 
 
 
本網頁建置日期:94.09.03 | 最近更新日期:94.09.03  | 回上頁 | 回首頁 |