區塊刪減法
應用顯式唯一法和隱式唯一法只能解決簡單的謎題,遇到稍復雜的謎題,還是要靠其他的方法。區塊刪減法也是比較常用的方法,它的目的是盡量刪減候選數,而不一定要生成某一單元格的唯一解(當然,產生唯一解更好)。區塊刪減法是利用區塊中的候選數和行或列上的候選數之間的交互影響而實現的一種刪減方法,它分為兩種情況:
- 區塊對行或列的影響
觀察下圖:
![]() |
可以看到在起始於[A7]的區塊中,數字9只出現在[A9]和[C9]的候選數中,更巧的是,[A9]和[C9]正好都在同一列上,即第9列。這時就可以應用區塊刪減法了。具體地說,在起始於[A7]的區塊中,數字9只能填在[A9]或是[C9]中,又因為這兩個單元格都在第9列上,所以無論數字9填在哪個單元格中,第9列的其他單元格中都不能再填數字9,所以要把9從它們的候選數中刪除。在上圖中,位於第9列的單元格[E9]中的候選數9將被刪除。 |
下圖說明的是區塊對行的影響:
![]() |
在起始於[G1]的區塊中,只有[H2]和[H3]可以填入數字3,而這兩個單元格正好都在行H中。同樣的道理,在這個區塊中無論數字3填入[H2]還是[H3],行H中的其他單元格中都不可能再填入3,所以在單元格[H4],[H6]和[H7]的候選數中的3將被刪除。 |
- 行或列對區塊的影響
與“區塊對行或列的影響”相近但卻不同,“行或列對區塊的影響”著重於先對行或列進行分析。
觀察下圖:
![]() |
在第5列中,8只出現在[D5]和[F5]的候選數中;也就是說,第5列中的數字8只能填入這兩個單元格其中的一個。碰巧的是,這兩個單元格正好都位於起始於[D4]的區塊中,結果使得這一區塊中的數字8也不能填入區塊的其他單元格中,所以[D4],[E4],[E6]和[F6]的候選數中的8將被刪除。 |
同樣,下圖說明了行對區塊的影響:
![]() |
在行E中,只有[E5]和[E6]能填入數字6,而這兩個單元格又剛好都在起始於[D4]的區塊中,所以該區塊中的其他單元格內不能再填入數字6,即6將從單元格[D5]和[F5]的候選數中刪除。 |
總結一下區塊刪減法的條件,就是:
- 在某一區塊中,當所有可能出現某個數字的單元格都位於同一行時,就可以把這個數字從該行的其他單元格的候選數中刪除。
- 在某一區塊中,當所有可能出現某個數字的單元格都位於同一列時,就可以把這個數字從該列的其他單元格的候選數中刪除。
- 在某一行(列)中,當所有可能出現某個數字的單元格都位於同一區塊中時,就可以把這個數字從該區塊的其他單元格的候選數中刪除。
雖然區塊刪減法應用比較廣泛,但是還是要先給大家潑盆冷水。因為在很多時候,即使滿足了區塊刪減的條件,也可能會發生沒有候選數可以刪減的情況,讓人空歡喜一場。其實,這個問題對其他稍復雜的方法都是普遍存在的。




