- 數(shù)獨游戲:從基礎到精通,讓你越玩越聰明
- 江安海
- 3059字
- 2019-01-03 13:12:19
第一章 四數(shù)數(shù)獨的樂趣
數(shù)獨作為一種益智游戲,起源于18世紀末的瑞士。20世紀70年代,在美國、日本得以發(fā)展,近些年來,在我國開始流行。
數(shù)獨的種類很多,先從最簡單的四數(shù)填數(shù)字游戲開始,帶大家走進有趣又好玩的數(shù)獨世界。
一、有趣的四數(shù)數(shù)獨游戲
例題1.1
下面是一個4×4的表格,由16個格構成,橫向連續(xù)排列的4個格組成一行,豎向連續(xù)排列的4個格構成一列,粗線條內的2×2四個格構成一個大格。請在空格中填上數(shù)字1或2或3或4,要求其中的每一行、每一列以及每一個大格中的數(shù)字都不重復。
該如何解決這個問題呢?
初學者容易在遇到解題困難時采用猜測的方法,就是將某一個數(shù)字用猜測的方法強行填入到某一個格中,直到出現(xiàn)矛盾,再返回修改猜測的步驟。運氣好的時候也許會猜對一次吧,但是,這種方法背離了周密觀察及嚴謹推理的宗旨,本書并不提倡。
還是從游戲規(guī)則入手進行分析,即每一行、每一列以及每一個大格內的數(shù)字不重復,只要符合規(guī)則的結果就予以保留,只要和規(guī)則矛盾的結果都予以舍棄。
第1步:下面左側表格中,注意標記“?”的空格所在的行、列和大格(陰影部分)。
“?”空格所在的行中已經出現(xiàn)了數(shù)字2和4,因為每一行中的數(shù)字不重復,所以,這個“?”空格的值已經排除了數(shù)字2和4的可能性。
同樣的道理,“?”空格中也不可能是數(shù)字3,因為“?”空格所在的列中已經出現(xiàn)了數(shù)字3。
既然“?”空格的數(shù)字既不是2和4,也不是3,那只能是1了。
這個尋找“?”空格中的數(shù)字的過程就是對空格的同一行、同一列以及同一個大格中已經出現(xiàn)的數(shù)字進行點算,如果點算發(fā)現(xiàn)1、2、3、4中已經出現(xiàn)了三個數(shù)字,未出現(xiàn)的數(shù)字只剩下一個數(shù)字時,這個數(shù)字就是該空格中的數(shù)字。
第2步:注意觀察下面左側表格中“?”空格所在的行(陰影部分),該行就差這個“?”空格就被填滿了,出現(xiàn)的三個數(shù)字是1、2和4,根據(jù)一行中數(shù)字不重復的規(guī)則,“?”空格處的數(shù)字是3。
當某一行中只剩下唯一的一個空格沒有填入數(shù)字時,說明該行已經出現(xiàn)了三個數(shù)字了,只有一個數(shù)字未出現(xiàn)。因此,這個空格中的數(shù)字就是該行中唯一未出現(xiàn)的數(shù)字。
第3步:觀察下面左側表格中“?”空格所在的大格以及行和列(陰影部分),點算后得到唯一未出現(xiàn)的數(shù)字是2。
第4步:同理,還可以得到第二行最右一個空格的數(shù)字是4。
第5步:注意觀察下面左側表格中陰影所在的大格,僅差一個空格就可以被填滿,因此,“?”空格中的數(shù)字是3。
第6步:同理,右上的大格中,唯一一個空格中的數(shù)字是1。
第7步:同理,最左邊一列中,唯一一個空格中的數(shù)字是4。
第8步:同理,最右邊一列中,唯一一個空格中的數(shù)字是2。
第9步:注意觀察下面左側表格中“?”空格所在的行、列和大格(陰影部分),點算已經出現(xiàn)的數(shù)字,顯然,“?”空格中的數(shù)字是2。
第10步:注意觀察下面左側表格中陰影所在的列,“?”空格中的數(shù)字是1。
第11、第12步:同理,最后余下的兩格中的數(shù)字分別是3和4。
例題1.1中這種類型的填數(shù)字游戲就是四數(shù)數(shù)獨。
二、四數(shù)數(shù)獨及其術語
結合對例題的觀察,得知四數(shù)數(shù)獨的游戲盤面是一個4×4的表格,由16個格構成。
水平方向排列的4個格組成行;垂直方向排列的4個格組成列;粗線條內的2×2四個格組成一大格,稱這個大格為宮。
有時候,為了方便起見,將行、列和宮都統(tǒng)一稱為單元。
如圖1.1(a)所示,本書中規(guī)定:
行用R1、R2、R3、R4來表示,例如R1表示第一行;列用C1、C2、C3、C4來表示,例如C1表示第一列;宮用第一宮、第二宮、第三宮、第四宮表示。
為了描述方便,格的坐標用它所在的行號和列號來表示,如圖1.1(b)所示,格X的坐標可以記做R2C2。

圖1.1 四數(shù)數(shù)獨的盤面及坐標示意圖
四數(shù)數(shù)獨的規(guī)則就是:在游戲盤面上的空格中,填上數(shù)字1或2或3或4,要求其中的每一行、每一列以及每一宮內的數(shù)字不重復。
每一個單元(行或列或宮)內都只有四個格,而數(shù)字也只有四個,數(shù)字不重復的意義就在于:每個單元內每個數(shù)字都會出現(xiàn)并且僅能出現(xiàn)一次。
當盤面中16個格全部都是空格時,排列組合的數(shù)目將非常繁多,如果將盤面上的空格全部填入數(shù)字,并且不違反游戲規(guī)則,這樣形成的盤面稱為最終盤面,也可以簡稱為終盤。
四數(shù)數(shù)獨習題都會在盤面的部分格中給定數(shù)字,稱為提示數(shù),提示數(shù)的功能就是作為解題的線索和初始條件,對于標準的四數(shù)數(shù)獨習題,終盤解是唯一的。
剛剛開始一道四數(shù)數(shù)獨習題時,只借助于提示數(shù)進行推理,得到的盤面的某空格中的數(shù)字解,稱為首解。
下面,再介紹一個對于解決數(shù)獨習題而言非常重要的概念。
如圖1.2所示,當盤面中的某一格與格A同屬于一行,或者同屬于一列,或者同屬于一個宮,就稱這個格是格A的同位格,將格A的全部同位格統(tǒng)稱為格A的同位群。仔細觀察會發(fā)現(xiàn),四數(shù)數(shù)獨中,任何一格的同位群中均有7個同位格。

圖1.2 格A的同位群示意圖
顯然,在前面例題的解題過程中,已經用到了同位群的方法。
三、四數(shù)數(shù)獨的算法總結
根據(jù)四數(shù)數(shù)獨的規(guī)則,結合例題1.1的解題經驗,可以總結出以下的算法。
1.單元唯一法
當某一單元中,有三個格中已經有數(shù)字了,只剩下唯一一個空格時,該空格的數(shù)字是確定的,就是唯一沒有出現(xiàn)的數(shù)字。
可以參考例題1.1解答中的第2步。
單元唯一法是單元內數(shù)字不重復規(guī)則的最簡單應用。
2.余數(shù)唯一法
什么是余數(shù)?余數(shù)是針對盤面上的空格而言的,一個空格的余數(shù)是指這個空格的同位群中已經出現(xiàn)的數(shù)字以外的其它數(shù)字。
當某一個空格的余數(shù)只剩下唯一一個數(shù)字時,那么,該空格的值就是該數(shù)字。這個方法稱為余數(shù)唯一法。
可以參考例題1.1解答中的第1步。
理論上,單元唯一法是余數(shù)唯一法的特例。單元唯一法的著眼點是一個單元中唯一的一個空格,而余數(shù)唯一法的著眼點是一個空格的同位群中唯一未出現(xiàn)的數(shù)字。
3.宮排除法
例題1.2
下面的四數(shù)數(shù)獨表中能夠取得首解的位置很多,在第二宮中,能嘗試找出一個唯一解嗎?
如下表所示,因為空格R1C1中的數(shù)字是1,因此,第二宮中,空格R1C3及空格R1C4不可能是數(shù)字1,并且空格R2C4的提示數(shù)為3,因此只有空格R2C3可能是數(shù)字1。根據(jù)四數(shù)數(shù)獨的規(guī)則,數(shù)字1是必須出現(xiàn)在第二宮中的,因此空格R2C3的數(shù)字是1。
當宮外的格與宮內的格同屬于一行(或同屬于一列)時,宮外的格中出現(xiàn)的數(shù)字就不可能出現(xiàn)在宮內的格中,也可以說是這些宮內的格排除了該數(shù)字。如果用一個數(shù)字對一個宮進行排除,當這個宮內只剩下一個空格沒有被該數(shù)字排除時,這個格的值就是該數(shù)字。這個方法就是宮排除法。
對宮的排除可以得出唯一解,如果對行或列進行排除,是否也可以得出唯一解呢?
4.行排除法
例題1.3
還是例題1.2中的表格,在第一行中,能嘗試找出一個唯一解嗎?
在第二宮中,因為格R2C4的數(shù)字是3,因此,格R1C3及格R1C4中的數(shù)字不可能是3。這樣,在第一行中,空格R1C2的數(shù)字是3。
顯然,這個方法與宮排除法類似,本題中就是用數(shù)字3對第一行進行排除,排除的結果是只有唯一一個空格R1C2沒有被數(shù)字3排除,這個空格的數(shù)字就確定了。
因為排除的對象是行,所以這種解題方法稱為行排除法。
5.列排除法
例題1.4
仍然是例題1.2中的表格,在第一列中,能嘗試找出一個唯一解嗎?
如下表所示,第三宮中,因為空格R4C2的值是數(shù)字2,因此,空格R3C1及空格R4C1的值不可能是2。這樣,在第一列中,空格R2C1的值為數(shù)字2。
這個解法與行排除法的道理是一致的,只不過排除的對象是列,這種解題方法就是列排除法。
單元唯一法和余數(shù)唯一法是從數(shù)字的角度來觀察,找出已經出現(xiàn)的數(shù)字,確定未出現(xiàn)的唯一余數(shù),可以統(tǒng)稱為余數(shù)法。
宮排除法、行排除法及列排除法是從空格的角度來觀察,觀察某一個單元中的空格是否被某個數(shù)字排除,確定沒有被該數(shù)字排除的唯一空格,可以統(tǒng)稱為排除法。
好吧,請拿起筆,開始這個有趣的填數(shù)字游戲吧。
習題一