圖M1是一個六宮數獨遊戲,它是一個六行、六列的數字表格,分別用英文字母A~F和阿拉伯數字1~6表示行號和列號,表格中每格也可稱為宮格。上層左右各六個宮格構成第一宮、第二宮,中層左右各六個宮格構成第三宮、第四宮,下層左右各六個宮格構成第五宮、第六宮。
遊戲的規則是,在每個空格中填入整數1~6,與題目給出的數字構成一個完整的數表,其中每行、每列、每宮的數字不重複,這就是所謂的數獨。
六宮數獨也稱六階數獨,由於數字才六個,宮格也較少,做起來比九宮數獨要輕鬆一些,適合小學、初中生練習。但也有一些六宮數獨,在解題過程中要用到候選數法這樣難度較高的技巧,更適合中小學數學競賽愛好者和喜歡邏輯推理的大學生去演練,並作為求解相應難度的九宮數獨的鋪墊。圖M1的題目就是如此,且看我來詳細解答。
為了儘量保留一些推理的趣味,我們一開始先用普通的方法解題,到了實在比較困難時才採用候選數法,因為候選數法對現有條件的信息開發能力很強,在後面你將會感受到它的優勢。閒話少敘,立即做題。
圖01來自圖M1,在A行3列的宮格中(簡稱A3,後面類同),它所在的第一宮、A行、3列其他宮格已有數字23456,由宮格數字的唯一性,就知道A3為1,這稱為唯一數法,如圖02。
在圖02中,再用唯一數法。A2所在的第一宮、A行、2列中其他格已有12356,顯然A2=4,見圖03。
對於圖03,B2所在的第一宮、B行、2列的其他格已有12456,因此B2一定是3,又是唯一數法,得到圖04。
換另一種技巧。看圖04,D6為1使D行的D1、D2不能是1,F1為1使1列的C1不能是1,A3為1使3列的C3不能是1,這樣第三宮就只有C2為1了,這是行列排除法,如圖05。
圖05中,仍由行列排除法,D5為4排除了D1與D2為4的可能,E3為4也使C3不能是4,可見第三宮中只有C1=4,就是圖06了。
從圖06看到,B1是第一宮僅有的空格,第一宮中已有12346,由宮格數字的唯一性就有B1為5,如圖07。
對於圖07,B5所在的第二宮、B行、5列其他格已有23456,故B5為1,參看圖08。
如圖08,B行已有數字12356,由宮格的唯一性得B4為4,即為圖09。
看看圖09,B5為1使5列的E5與F5不是1,D6為1也使6列的E6與F6不能是1,又F1為1使F行的F4不是1,因而第六宮只有E4為1,還是行列排除法,就有圖10。
參看圖10,還是由行列排除法,E3、B4與D5都是4排除了E5、E6、F4、F5為4的可能性,第六宮只能有F6=4,見圖11。
來到這裡,常規的方法就遇到瓶頸了,必須由候選數法來開創新局面。在圖11的每個空格中填入六個小字體的123456,就是圖12。
按題目給出的和已經解出的數字,刪去每行、每列和每宮的重複小數字,便有圖13。
圖13中,小字體的數字就稱為候選數,有候選數的宮格中,只有一個候選數是正確的,其餘的都要清除。由候選數開發出來的別具一格的數獨解法統稱候選數法。候選數法的優點是,讓隱含的信息顯示出來,為推導過程提供了更豐富的線索,這使大量看起來頗為棘手的問題得以順利解決。
候選數法的諸多技巧都很獨特,我們將在後面的實例中一一介紹。總的思路是,排除不可能的候選數,每格剩下的最後一個候選數就成為正選了。
如圖13,考慮C3,它只有兩個候選數2與3,若C3為3,則同在第三宮的D1不能有候選數3,此時與D1同在1列的E1所含候選數3是1列中唯一的3,可見E1必是3,而E行的另一候選數3在E6,因而E6不能為3,6列還剩在C6的唯一候選數3,即C6就是3,這與同在C行的C3為3的假設矛盾,所以C3不能是3,這就是反證法,我們可以用一段類似編程算法的邏輯表達式來描述剛才的分析思路:
+3[C3]-3[D1]+3[E1]-3[E6]+3[C6]-3[C3]
現在對上面的式子進行分段文字解釋:
+3[C3]-3[D1] 假設C3為3,則D1不是3;
+3[E1]-3[E6] 因此E1為3,則E6不是3;
+3[C6]-3[C3] 故有C6為3,這與C3為3的假設矛盾。
於是C3不是3,只能有C3=2,清除第三宮、C行、3列的其他候選數2,就得圖14。
圖14中,F3隻有唯一候選數3,不論它是處於哪一行、列和宮,F3都只能是3,這與唯一數法實際是一樣的,刪去第五宮、F行的其他候選數3(3列沒有其他候選數),就是圖15。
考察圖15,E6雖然有三個候選數356,但3是第六宮(也是E行)的唯一候選數,因此E6=3,這是隱形唯一候選數法,去除相關行、列、宮的其餘候選數3,如圖16。
再講另一技巧。圖16中C5與C6都恰好有候選數5和6,這稱為數組,因為只有兩個候選數,也叫數對。這是一種穩定的結構,意味著第四宮中5和6隻能在C5和C6中,其他格絕不可能是5和6,清除C4和D4中的5和6,即是圖17。
看圖17,F4與F5是候選數為2和6的數對,同在第六宮中的E5就不能有候選數2和6,只有E5=5,這也可由隱形唯一候選數得到,清除相關行、列、宮的重複候選數5,見圖18。
到了圖18,第四宮中由唯一候選數得C4為3,C5為6。又由隱形候選數有C6為5,D4為2,清除相關行列宮的多餘候選數,便是圖19。
最後,圖19中第二、三、五、六宮中只有唯一候選數或隱形唯一候選數,圖M1的六宮數獨01題的解答就在圖20中。
做完題目後,有一個良好的習慣是把整個數表複查一遍,看是否每行、每列、每宮的數都是不重複的1~6。
本題的關鍵是在圖13中用邏輯推理證明了C3不是3,這種反證法不同人有不同的表達方式,但萬變不離其宗,都是在想辦法刪減不可能的候選數,剩下的就只能是必選的了。下面再提供另一種解法,仍從圖13開始。
在圖13中,假設C6為3,則同在6列的E6不能是3,此時第六宮就只有F4的候選數為3,即F4就是3,這樣與F4同在F行的F3就不是3,而3列只剩一個候選數3,它在C3,從而C3=3,這與C6的假設矛盾,用邏輯表達式可以這樣寫:
+3[C6]-3[E6]+3[F4]-3[F3]+3[C3]-3[C6]
可見,C6不能是3,6列的E6就只能是3了。後面的求解過程勢如破竹,類似圖14至圖20那樣,讀者可以試一試。
這樣的推理也不止本文講的兩種方法,還有多種去除多餘候選數的途徑,有的稍為繁複些,但都能去偽存真,步步趨近真相。這也是作為遊戲的數獨能夠引人入勝之處,紛繁形態耐人尋味,解構方法龐雜多變,考驗數獨玩家的思維活躍程度。
本文提供的邏輯式子再次說明數獨確實是訓練邏輯推理能力的好工具,建議中小學數學競賽愛好者和喜歡邏輯推理的大學生多加練習,也可把類似的技法移植到有相當難度的九宮數獨中。