特殊聲明:字數(shù)比較龐大,如果對數(shù)獨不感興趣者勿進。
數(shù)獨(すうどく,Sūdoku)是一種運用紙、筆進行演算的邏輯游戲。玩家需要根據(jù)9×9盤面上的已知數(shù)字,推理出所有剩余空格的數(shù)字,并滿足每一行、每一列、每一個粗線宮內(nèi)的數(shù)字均含1-9,不重復(fù)。數(shù)獨盤面是個九宮,每一宮又分為九個小格。在這八十一格中給出一定的已知數(shù)字和解題條件,利用邏輯和推理,在其他的空格上填入1-9的數(shù)字。使1-9每個數(shù)字在每一行、每一列和每一宮中都只出現(xiàn)一次,所以又稱“九宮格”。
起源
既然“數(shù)獨”有一個字是“數(shù)”,人們也往往會聯(lián)想到數(shù)學(xué),那就不妨從大家都知道的數(shù)學(xué)家歐拉說起,但凡想了解數(shù)獨歷史的玩家在網(wǎng)絡(luò)、書籍中搜索時,共同會提到的就是歐拉的“拉丁方塊(Latin square)”,如下圖:
拉丁方塊的規(guī)則:每一行(Row)、每一列(Column)均含1-N(N即盤面的規(guī)格),不重復(fù)。這與前面提到的標準數(shù)獨非常相似,但少了一個宮的規(guī)則。
近代發(fā)展
數(shù)獨起源于18世紀初瑞士數(shù)學(xué)家歐拉等人研究的拉丁方陣(Latin Square)。19世紀80年代,一位美國的退休建筑師格昂斯(Howard Garns)根據(jù)這種拉丁方陣發(fā)明了一種填數(shù)趣味游戲,這就是數(shù)獨的雛形。20世紀70年代,人們在美國紐約的一本益智雜志《Math Puzzles and Logic Problems》上發(fā)現(xiàn)了這個游戲,當(dāng)時被稱為填數(shù)字(Number Place),這也是目前公認的數(shù)獨最早的見報版本。1984年一位日本學(xué)者將其介紹到了日本,發(fā)表在Nikoli公司的一本游戲雜志《パズル通信ニコリ》上,當(dāng)時起名為“Suuji wa dokushin ni kagiru”,后來覺得這個名字太長,就改名為“sudoku”,其中“su”是數(shù)字的意思,“doku”是單一的意思。這個名字也是國際上對數(shù)獨的比較通用的叫法。后來一位前任香gang高等法院的新西蘭籍法官高樂德(Wayne Gould)在1997年3月到日本東京旅游時,無意中發(fā)現(xiàn)了。他首先在英國的《泰晤士報》上發(fā)表,不久其他報紙也發(fā)表,很快便風(fēng)靡全英國,之后他用了6年時間編寫了電腦程式,并將它放在網(wǎng)站上(這個網(wǎng)站也就是著名的數(shù)獨玩家論壇),后來因一些原因,網(wǎng)站被關(guān)閉,幸好數(shù)獨大師Glenn Fowler恢復(fù)了數(shù)據(jù),玩家論壇有了新處所。在90年代國內(nèi)就有部分的益智類書籍開始刊登,南海出版社在2005年出版了《數(shù)獨1-2》,隨后日本著名數(shù)獨制題人西尾徹也的《數(shù)獨挑戰(zhàn)》也由遼寧教育出版社出版。《北京晚報》、《揚子晚報》、《羊城晚報》、《新民晚報》、《成都商報》等等報紙媒體也先后刊登了數(shù)獨游戲。
組成元素
方格
水平方向有九橫行,垂直方向有九縱列的矩形,畫分八十一個小正方形,稱為九宮格(Grid)
行
水平方向的每一橫行有九格,每一橫行稱為行(Row)
列
垂直方向的每一縱列有九格,每一縱列稱為列(Column)
宮
三行與三列相交之處有九格,每一單元稱為小九宮(Box、Block),簡稱宮
單元
上述行、列、宮統(tǒng)稱為單元(Unit)
區(qū)塊
由三個連續(xù)宮組成大區(qū)塊(Chute),分大行區(qū)塊(Floor)及大列區(qū)塊(Tower)。
第一大行區(qū)塊:由第一宮、第二宮、第三宮組成。
第二大行區(qū)塊:由第四宮、第五宮、第六宮組成。
第三大行區(qū)塊:由第七宮、第八宮、第九宮組成。
第一大列區(qū)塊:由第一宮、第四宮、第七宮組成。
第二大列區(qū)塊:由第二宮、第五宮、第八宮組成。
第三大列區(qū)塊:由第三宮、第六宮、第九宮組成。
格位編號
格位按所處的行列單元賦予坐標值
坐標有多種標示法,有橫行 A~I,縱列 1~9(如中國),也有橫行 1~9,縱列 A~I(如日本),這兩種標示容易混淆,故最被廣泛使用的是橫行R1~R9,縱列C1~C9的標示法。
提示數(shù)
在九宮格的格位填上一些數(shù)字,做為填數(shù)判斷的線索(Hint),稱為提示數(shù)(Clue)
基本解題方法
解題的本質(zhì)有二:隱性唯一解(Hidden Single)及顯性唯一解(Naked Single),他們的名稱是在候選數(shù)法的基礎(chǔ)上命名的。
解題必須以邏輯為依歸,猜測的方法被稱為“暴力型”解法(Brute Force),這不是提倡數(shù)獨的本意。
根據(jù)解題本質(zhì)發(fā)展出來的基本解題方法有二種:
摒除法
摒除法:用數(shù)字去找單元內(nèi)唯一可填空格,稱為摒除法,數(shù)字可填唯一空格稱為摒余解(隱性唯一解)。
根據(jù)不同的作用范圍,摒余解可分為下述三種:
數(shù)字可填唯一空格在「宮」單元稱為宮摒余解(Hidden Single in Box),這種解法稱宮摒除法。
數(shù)字可填唯一空格在「行」單元稱為行摒余解(Hidden Single in Row),這種解法稱行摒除法。
數(shù)字可填唯一空格在「列」單元稱為列摒余解(Hidden Single in Column),這種解法稱列摒除法。
行摒余解和列摒余解合稱行列摒余解(Hidden Single in Line)。
得到行列摒余解的方法稱為行列摒除法。
余數(shù)法:用格位去找唯一可填數(shù)字,稱為余數(shù)法,格位唯一可填數(shù)字稱為唯余解(Naked Single)。
余數(shù)法是刪減等位群格位(Peer)已出現(xiàn)的數(shù)字的方法,每一格位的等位群格位有 20 個,如圖七所示。
依解題填制的過程可區(qū)分為直觀法與候選數(shù)法:
直觀法
直觀法就是不做任何記號,直接從數(shù)獨的盤勢觀察線索,推論答案的方法。
候選數(shù)法
候選數(shù)法就是刪減等位群格位已出現(xiàn)的數(shù)字,將剩余可填數(shù)字填入空格做為解題線索的參考,可填數(shù)字稱為候選數(shù)(Candidates,或稱備選數(shù))。
直觀法和候選數(shù)法只是填制時候是否有注記的區(qū)別,依照個人習(xí)慣而定,并非鑒定題目難度或技巧難度的標準,無論是難題或是簡單題都可上述方法填制,一般程序解題以候選數(shù)法較多。
進階解題方法
上述方法稱為基礎(chǔ)解法(Basic Techniques),其他所有的解法稱為進階解法(Advanced Techniques),是在補基本解法之不足,所以又稱輔助解法。
進階解法包括:區(qū)塊摒除法(Locked Candidates)、數(shù)組法(Subset)、四角對角線(X-Wing)、唯一矩形(Unique Rectangle)、全雙值墳?zāi)梗˙ivalue Universal Grave)、單數(shù)鏈(X-Chain)、異數(shù)鏈(XY-Chain)及其他數(shù)鏈的高級技巧等等。已發(fā)展出來的方法有近百種之多。
其中前兩種加上基礎(chǔ)解法為一般數(shù)獨書中介紹并使用的方法,同時也是大部分人可以理解并掌握的數(shù)獨解題技法。
通過基礎(chǔ)解法出數(shù)只需一種解法,摒除法或唯余法,超出此范圍而需要施加進階解法時,解題點需要進階解法協(xié)助基礎(chǔ)解法來滿足隱性唯一或顯性唯一才能出數(shù),該解題點的解法需要多個步驟協(xié)力完成,因此稱做組合解法。
相對概率
相對概率不是真實的概率,而是用于同一格中的幾個數(shù)字之間相互比較出現(xiàn)的可能。
相對概率 = 九宮格出現(xiàn)的概率 × 行出現(xiàn)的概率 × 列出現(xiàn)的概率
九宮格出現(xiàn)的概率:如果九宮格中有2個格可能出現(xiàn)1,目標格可能的數(shù)字為1、2、3,另一個格可能出現(xiàn)的數(shù)字為1、4,那么:目標格中的1在九宮格出現(xiàn)的概率 = 目標格中出現(xiàn)1的概率 × (1 - 另一個格中出現(xiàn)1的概率),得1/3 × (1-1/2) = 1/6。
注意:1-1/2表示另一個格不出現(xiàn)1的概率,1/3 × (1-1/2) 的意思就是在另一個格不出現(xiàn)1的情況下,目標格出現(xiàn)1的概率。
如果九宮格中有三個格可能出現(xiàn)1,目標格可能的數(shù)字為1、5、6,另一個格可能出現(xiàn)的數(shù)字為1、7,還有一個格可能出現(xiàn)的數(shù)字為1、8、9,得1/3 × (1-1/2) × (1-1/3) = 1/9。依此類推。
行出現(xiàn)的概率和列出現(xiàn)的概率與九宮格出現(xiàn)的概率的算法原理相同。最后,把三個概率相乘,得到相對概率,把目標格中3個數(shù)字的相對概率進行對比,相對概率越大,出現(xiàn)的可能性越大。
區(qū)塊摒除法
區(qū)塊摒除法包括宮區(qū)塊摒除法(Pointing)與行列區(qū)塊摒除法(Claiming)。
難度劃分
影響數(shù)獨難度的因素很多,就題目本身而言,包括最高難度的技巧、各種技巧所用次數(shù)、是否有隱藏及隱藏的深度及廣度的技巧組合、當(dāng)前盤面可邏輯推導(dǎo)出的出數(shù)個數(shù)等等。對于玩家而言,了解的技巧數(shù)量、熟練程度、觀察力自然也影響對一道題的難度判斷。市面上數(shù)獨刊物良莠不齊,在書籍、報紙、雜志中所列的難度或者大眾解題時間純屬參考,常有難度錯置的情況出現(xiàn),所以不必特別在意。網(wǎng)絡(luò)上有很多數(shù)獨難度的分析軟件,比較著名的是 Nicolas Juillerat 開發(fā)的 Sudoku Explainer 和 Bernhard Hobiger 開發(fā)的 Hodoku,它們都是免費的軟件。因為每種軟件的都有不同的解題策略,所以也只能作為難度的大致界定,無法真正的解析出難度的內(nèi)涵。
如果一道題目的提示數(shù)少,那么題目就會相對難,提示數(shù)多則會簡單,這是一般人判斷難易的思維模式,但數(shù)獨謎題提示數(shù)的多寡與難易并無絕對關(guān)系,多提示數(shù)比少提示數(shù)難的情況屢見不鮮,同時也存在增加提示數(shù)之后題目反而變難的情形,即使是相同提示數(shù)(甚或相同謎題圖形)也可以變化出各式各樣的難度。提示數(shù)少對于出題的困難度則有比較直接的關(guān)系,以20-35提示數(shù)而言,每少一個提示數(shù),其出題難度會增加數(shù)倍,在制作謎題時,提示數(shù)在22以下就非常困難,所以常見的數(shù)獨題其提示數(shù)在23~30之間,其原因在于制作比較不困難,可以設(shè)計出比較漂亮的圖形(Pattern),另外這個提示數(shù)范圍的謎題變化多端是一個重要因素。
終盤數(shù)量
數(shù)獨中的數(shù)字排列千變?nèi)f化,那么究竟有多少種終盤的數(shù)字組合呢?
6,670,903,752,021,072,936,960(約為6.67×10的21次方)種組合,2005年由Bertram Felgenhauer和Frazer Jarvis計算出該數(shù)字,并將計算方法發(fā)布在他們網(wǎng)站上,如果將等價終盤(如旋轉(zhuǎn)、翻轉(zhuǎn)、行行對換,數(shù)字對換等變形)不計算,則有5,472,730,538個組合。數(shù)獨終盤的組合數(shù)量都如此驚人,那么數(shù)獨題目數(shù)量就更加不計其數(shù)了,因為每個數(shù)獨終盤又可以制作出無數(shù)道合格的數(shù)獨題目。
標準數(shù)獨
目前(截止2011年)發(fā)現(xiàn)的最少提示數(shù)9×9標準數(shù)獨為17個提示,截止2011年11月24日16:14,共發(fā)現(xiàn)了非等價17提示數(shù)謎題49151題,此數(shù)量仍在緩慢上升中,如果你先發(fā)現(xiàn)了17提示數(shù)的題目,可以上傳至“17格數(shù)獨驗證”網(wǎng)站,當(dāng)然你也可以在這里下載這49151題。
關(guān)于是否有16提示數(shù)的合格題目,網(wǎng)絡(luò)上也爭論很久,有發(fā)現(xiàn)16提示數(shù)雙解的,但是仍未發(fā)現(xiàn)唯一解。國外有網(wǎng)友給出了關(guān)于為什么至少需要17提示的證明,受到了大家的質(zhì)疑,比如9×9對角線數(shù)獨(在標準數(shù)獨規(guī)則基礎(chǔ)上,兩條大對角線的數(shù)字不重復(fù))的最小提示數(shù)為12,按照他的理論則需要更多的提示數(shù)。
另外在2006年Gary McGuire撰寫了程式,試圖通過暴力法來證明16提示數(shù)的數(shù)獨是否存在,方法很簡單,既然Bertram Felgenhauer和Frazer Jarvis已經(jīng)計算出不等價的終盤總數(shù)為5,472,730,538個,那么將每個終盤是16提示的情況都跑一遍,如果沒有找到16提示的數(shù)獨,那么就可以證明最少提示數(shù)為17個。但因為是暴力方法,對于一臺單核的電腦來說需要跑30萬年才能跑出結(jié)果。臺灣的吳毅成教授和他的團隊將Gary McGuire的程式加以改進,使得效率大幅提升,大約2417年即可完成演算。并放在BOINC(伯克利開放式網(wǎng)絡(luò)計算平臺)上讓世界加入BOINC的電腦一同演算,令人欣喜的是,截至編輯2012年4月18日已經(jīng)完成了51.73%。
Gary McGuire的團隊在2009年設(shè)計了新的算法,利用Deadly Pattern的思路,花費710萬小時CPU時間后,于2012年1月1日提出了9×9標準數(shù)獨不存在16提示唯一解的證明,繼而說明最少需要17個提示數(shù)。并將他們的論文以及源代碼更新在2009年的頁面上。
變形數(shù)獨
數(shù)獨到如今發(fā)展,出現(xiàn)了越來越多的變形(Variants),按照規(guī)則劃分則成百上千,各國的數(shù)獨愛好者也不斷制作出新的變形。下面列出最常見的三種變形:
對角線數(shù)獨
對角線數(shù)獨(Diagonal Sudoku、Sudoku-X):
在標準數(shù)獨規(guī)則基礎(chǔ)上,兩條大對角線的數(shù)字不重復(fù)。
迷你數(shù)獨
迷你數(shù)獨(Mini Sudoku):
每個謎題都由一個在不同位置給與提示數(shù)字的4x4或6x6網(wǎng)格組成。游戲的目的是將空方格填上數(shù)字1到4(對于4x4大小的謎題)或者1到6(對于6x6的謎題),使得每一行,每一列以及每一個宮都沒有重復(fù)的數(shù)字出現(xiàn)。
Maga數(shù)獨
Maga數(shù)獨(Maga Sudoku):
每個謎題都由一個在不同位置給與提示數(shù)字的12x12或16x16的網(wǎng)格組成。游戲的目的是將空方格填上數(shù)字1到12(對于12x12的謎題)或者1到16(對于16x16的謎題),使得每一行,每一列以及每一個宮都沒有重復(fù)的數(shù)字出現(xiàn)。
鋸齒數(shù)獨
鋸齒數(shù)獨(Jigsaw Sudoku):
相對標準數(shù)獨而言,宮變成了不規(guī)則的。玩家需在對應(yīng)的鋸齒方框內(nèi)填入不重復(fù)的九個數(shù)或N個數(shù),并保證橫縱也不重復(fù)。
連體數(shù)獨
連體數(shù)獨(Multi Sudoku):
每個謎題都由倆個或者更多的數(shù)獨網(wǎng)格重疊組成,該網(wǎng)格可能是標準數(shù)獨謎題也可能是混合類型的數(shù)獨謎題,這些網(wǎng)格都有一個或多個宮重疊。游戲的目的是通過其規(guī)則將每個網(wǎng)格均解出。溫馨提示,重疊的區(qū)域必須同時滿足其所在網(wǎng)格的規(guī)則。
Killer數(shù)獨
殺手數(shù)獨(Killer Sudoku、Sum Sudoku):
在標準數(shù)獨規(guī)則的基礎(chǔ)上,每個虛線框左上角的數(shù)字表示虛線框內(nèi)所有數(shù)字之和,每個虛線框內(nèi)數(shù)字無重復(fù)。
同時這3種基本變型也作為其他變形數(shù)獨的雛形慢慢延伸開來,比如對角線數(shù)獨引發(fā)了額外區(qū)域等,鋸齒數(shù)獨打破了宮是方方正正的定式,殺手數(shù)獨更是引發(fā)了更多計算類的數(shù)獨。
出題方法
挖洞法
從有到無的出題方法。先生成一個終盤,然后挖去部分數(shù)字形成一道題目。
填數(shù)法
從有到無的出題方法。在一個空盤面上填上部分數(shù)字形成一道題目。值得一提的是,2007年日本NPGenerator軟件的網(wǎng)站提出了一種邊推理邊出題的出題法,可以手工打造出漂亮圖案的數(shù)獨題目,有興趣出題的可以試試。
類似謎題
謎題(Puzzle):排除文化差異對做題者的影響,只用數(shù)字和圖形表示的邏輯推理游戲。數(shù)獨是謎題中的一個成員,由于其規(guī)則簡單、種類眾多從而從眾多謎題脫穎而出,成為大眾熟知的數(shù)字謎題。
不過除了數(shù)獨以外,還有不少謎題也非常出色,也有眾多的擁護者,而且與數(shù)獨有千絲萬縷的關(guān)系。數(shù)獨愛好者同樣不能錯過這些優(yōu)秀的邏輯推理游戲。下面簡單介紹幾類謎題:
數(shù)和(Kakuro):與殺手數(shù)獨很像的一類謎題,規(guī)則要求同行、同列(同一段)數(shù)字不能重復(fù),且每段數(shù)字之和等于左邊和上邊的提示數(shù)字。
數(shù)圖(Nonograms/Griddlers):根據(jù)盤面周圍的數(shù)字提示,把盤中涂成符合條件的圖案,很像“十字繡”。
數(shù)回(Slither Link):游戲由0,1,2,3四個數(shù)字組成。每一個數(shù)字,代表四周劃線的數(shù)目,并在最后成為一個不間斷、不分岔的回路。
數(shù)墻(Nurikabe):數(shù)墻的世界,是一個非黑即白的二元世界;在游戲中,你要決定的是,哪些格子需要涂黑,哪一些應(yīng)該留白。
數(shù)連(Number Link):與數(shù)獨一樣,數(shù)連是一個簡單明快的游戲。你只需要把屬于相同數(shù)字的同伴,以線連接起來。不過,這個游戲看起來非常簡單,實際上是很有深度的。
算獨(Kenken)游戲的目的是將數(shù)字1到N(N為網(wǎng)格的行列數(shù))填滿空格,使得每一行,每一列的數(shù)字不重復(fù),并且每一個粗線框左上角代表了該粗線框內(nèi)數(shù)字的運算法則以及計算結(jié)果。算數(shù)數(shù)獨的粗線框內(nèi),相同數(shù)字可能使用不止一次。
數(shù)獨計算器
數(shù)獨計算器是一個特殊的數(shù)獨解答工具,它試圖提供人性化的數(shù)獨解題方法,完全模擬人腦的思維過程解題,并且能一步一步的講解每步的理由。
在你對數(shù)獨難題一籌莫展的時候,該數(shù)獨軟件將為了提供幫助, 數(shù)獨計算器是一個特殊的數(shù)獨工具。我們希望數(shù)獨計算器成為很好的使用邏輯方法解數(shù)獨的工具,大家可以從數(shù)獨助手的運行過程掌握更好的解數(shù)獨題技巧,作為數(shù)獨技巧教學(xué)的工具。
數(shù)獨計算器可以進行一步一步計算、指定步數(shù)計算、一次性計算,對于每一步計算給出詳細的說明。對于有多個解的數(shù)獨題目,會給出提示,并可人工干預(yù)。對每一步計算生成步驟列表,可以回到任意步驟進行研究。
賽事
世界數(shù)獨錦標賽:由世界智力謎題聯(lián)合會組織的國際性最高水準數(shù)獨賽事,該賽事每年舉辦一次,由不同的會員國輪流申請舉辦。首屆于2006年在意大利的盧卡舉辦,第八屆于2013年在北京舉辦
。每年由世智聯(lián)在各國的唯一授權(quán)組織選拔國家隊參加。
北京國際數(shù)獨大獎賽:由北京廣播電視臺主辦的一項國際數(shù)獨賽事,該賽事獎金較高,也吸引了國際上眾多高手踴躍參與,給國內(nèi)高手提供了一個可以與國外高手同場競技的平臺。首屆于2011年舉辦,第二屆于2012年5月舉辦,目前國內(nèi)參賽的選手均為以往進入過數(shù)獨國家隊或在國內(nèi)選拔賽中名列前茅者。
中國數(shù)獨錦標賽:由國內(nèi)的世智聯(lián)授權(quán)組織每年舉辦一次,目的是選拔出當(dāng)年的數(shù)獨高手組隊參加一年一度的世界數(shù)獨錦標賽。該比賽不設(shè)置門檻,無論新人還是老手均可參加。具體的時間和地點請關(guān)注官方的數(shù)獨選拔賽通知。
經(jīng)過兩天緊張激烈的比賽,各項桂冠終有歸屬。中國隊獲得團體賽冠軍,捷克、日本分獲亞軍、季軍;中國隊的三位中學(xué)生選手金策、孫徹然、邱言哲獲18歲及18歲以下年齡組前三名;中國隊梁躍獲得50歲及50歲以上年齡組亞軍,丹麥隊和意大利隊選手分獲冠軍和季軍;金策還奪得個人賽冠軍,日本的森西亨泰、捷克的雅庫布分獲亞軍、季軍。
據(jù)了解,隨著數(shù)獨這項智力運動在中國的不斷普及,越來越多的青少年成為數(shù)獨愛好者。此次中國數(shù)獨代表隊不僅是比賽中最年輕的國家隊之一,年僅15歲的邱言哲也成為年齡最小的A隊隊長。別看他還是一名在校初中生,卻有著豐富的比賽經(jīng)驗,2011、2012年他曾是世界數(shù)獨錦標賽中國隊選手,2013獲得中國數(shù)獨錦標賽第四名。
獲得18歲及18歲以下年齡組、個人賽及團體賽三項冠軍的中學(xué)生金策,可謂本屆數(shù)獨世錦賽的一匹黑馬。來自浙江的他已與數(shù)獨結(jié)緣4年,當(dāng)一些同齡人沉溺于網(wǎng)絡(luò)游戲時,他卻利用網(wǎng)絡(luò)尋找與他志同道合的數(shù)獨伙伴。瘦高的個子,不善言語的他,雖然在陌生人面前有些羞澀,但卻通過一個個小小的九宮格展現(xiàn)自信與智慧。
本屆數(shù)獨世錦賽決賽以電視直播的方式,在北京電視臺新聞頻道同步播出,這在世界上尚屬首次。在沒有任何經(jīng)驗可循的情況下,為保證不影響賽事進行,同時又能實時展現(xiàn)選手比賽進程,組委會設(shè)計了多套直播方案,多次推敲并到場演練,以演播室講解加決賽現(xiàn)場的方式,清晰簡練地為電視觀眾講解數(shù)獨題目。
完。
那么你了解多少呢 |