官术网_书友最值得收藏!

第一章 四數(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ù)字游戲吧。

習題一

主站蜘蛛池模板: 班戈县| 庆云县| 北票市| 丹寨县| 济源市| 云梦县| 赤城县| 巩留县| 巫山县| 津市市| 克山县| 沐川县| 茌平县| 赫章县| 交口县| 防城港市| 太原市| 岢岚县| 彭州市| 平罗县| 东至县| 六盘水市| 麻城市| 滨海县| 青铜峡市| 缙云县| 太白县| 霸州市| 定日县| 荆州市| 湘乡市| 渭南市| 宁陕县| 文化| 松江区| 克东县| 蚌埠市| 安图县| 克东县| 曲靖市| 菏泽市|