拉丁方的衍生遊戲“數獨”

袁野發表於2012-08-01
數獨是一種運用紙、筆進行演算的邏輯遊戲。玩家需要根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每一個粗線宮內的數字均含1-9,不重複。 每一道合格的數獨謎題都有且僅有唯一答案推理方法也以此為基礎,任何無解或多解的題目都是不合格的。

拉丁方的謎題在數學中有著顯赫的歷史。儘管從名字上看,它好像是起源於古羅馬,但實際上並非如此。第一個拉丁方來自於13世紀的伊斯蘭世界,在雕刻中作為祈求好遠的符咒出現,在阿拉伯語中被稱為“wafq majazi”。在純粹數學中,類似的方陣以“凱萊表”的名字出現,作為群的抽象乘積運算的乘法表。在應用數學中,他們作為糾錯編碼也是極為有用的。不過更加出名的是,拉丁方天天都在全世界的報紙上佔據著一席之地,名字叫“數獨”。

我們來著手做一個拉丁方,首先畫一個3X3的表格。下面的任務就是在其中填入1,2,3,這三個數字,使得在每行每列中,每個數字都只出現一次。這很簡單,而且答案又不止一種,下圖就是一例:

enter image description here

當然,類似地可以擴充套件到4X4或5X5的方形,或者更高階。這就是拉丁方的基本思想。自從它們有中世紀的學者們發現以來,好幾代人都對這一設計中的簡潔和對稱讚嘆不已。向其中增加額外的條件就會產生出一些新的事物,比如希臘-拉丁方陣和數獨。

儀仗隊分列式中的難題

當瑞士數學家尤拉第一次聽說拉丁方時,他的大腦就開始飛轉起來了。他立刻尋找附加的條件以豐富它的內容。她最先想到的主意是把兩個拉丁方合在一起的一種方法。

假設九個軍官排成方陣行進,去參加皇家閱兵式。他們來自三個不同的團(記作A、B、C),每個團都是三個人。為了使隊伍儘可能對稱,將軍提出要求:在他們排成的隊伍中,各團的代表在每行每列都恰好出現一次。這也就是要求他們排成拉丁方的形式。另外還有個附加的要求。因為這些軍官還有三個不同的軍銜(記作1、2、3),將軍希望每個軍銜的軍官都在各行各列中恰好出現一次。這就是要求他們排成拉丁方,而且同時從兩種不同的角度:首先從兵團的角度,其次從軍銜的角度。

於是有了九個軍官,分別記作A1, A2, A3, B1, B2, B3, C1, C2, C3。現在下圖可以給出解決這個問題的方法:

enter image description here

就是一個希臘- 拉丁方陣的例子。它來自於兩個不同的拉丁方的粘合: enter image description here enter image description here

但並不是任意兩個拉丁方都可以滿足條件的。結果必須使得沒有任何一個字母數字組合(例如A2)重複出現,並且所有的組合都表示出來了。(“希臘-拉丁方陣”這個名稱反映的是,尤拉用了拉丁字母和希臘字母作為兩組不同的符號。)

九軍官問題歸結於尋找一個3X3的希臘- 拉丁方陣,它確實不難解決。如果你去試著對2X2的方陣來做同樣的事情,很容易發現這是不可能的,也就是說四軍官問題是無解的。更高階的4X4和5X5希臘- 拉丁方陣構造起來會更加棘手,不過經過反覆試驗之後還是可以做出的,從而16 和25軍官的問題也被解決了。更加麻煩的則是著名的36 軍官問題。問題是一樣的:能否找到一個6X6的希臘- 拉丁方陣?這一回,找到答案更是出奇地困難了。尤拉最終寫道:“經過努力嘗試後,我們必須承認這樣的排列是絕不可能存在的,儘管現在還不能給出一個嚴格的證明。”

尤拉同樣不能找到10X10和14X14的希臘- 拉丁方陣,而這些數之間的那些階數則沒什麼問題。於是他猜想這些階數的希臘- 拉丁方陣是不存在的:6, 10, 14, 18, 22, 26 等。(其中的規律是,它們都是4 的倍數加2。)

不可能的軍官問題

尤拉關於36 軍官問題無解的斷言是正確的嗎?解決這個猜想的過程頗為困難。看上去唯一可能的途徑就是把所有6X6的拉丁方列舉出來,然後觀察任意兩個組合後是否滿足條件。這也確實就是問題最終解決的方法。1901 年,Gaston Tarry 詳細地給出了所有9408 個6X6拉丁方的概述,並且說明了它們的任意組合都不能形成希臘- 拉丁方陣。

尤拉在36軍官問題上的看法是對的:沒有能夠使將軍滿意的列隊方法。但是,他在更高階方陣上的看法卻錯了。10X10 的希臘- 拉丁方陣是存在的,14X14 的方陣以及更大的方陣也是可以的。這是在1959 年由Parker、Bose 和Shrikhande 指出的。所以只有6X6的方陣是不存在的。

試驗和體育競賽的設計

拉丁方有一項歷史悠久的應用,就是在設計科學試驗時使偏差最小化。假如我們有五輛汽車(A, B, C, D, E)需要測試速度和安全效能,並且由五位駕駛員(1, 2, 3, 4, 5)來分別測試。我們可以恰好給每位駕駛員分配一輛車,然後比較結果,不過這樣很可能會產生偏差,因為不同駕駛員的駕駛方式和技能可能都不同。所以我們希望每個駕駛員都能測試所有的車,繼而可以對每輛車取得平均時間,再進行比較。一種合適的安排方法就可以通過5X5的希臘- 拉丁方陣給出:

enter image description here

這樣就會有許多優點。比如說,新車第一次駕駛會不利於司機的發揮,但是在這裡的安排下,每輛車都會對應某個司機是第一次駕駛,這樣可以消除一些這方面的影響。同樣的方法也可以應用於電腦科學或者體育比賽中的日程安排。假如有兩支隊伍進行團體賽,每隊五名選手,他們之間都要相互比賽。那麼如上的方陣就提供了所有必需賽事的一種可能的安排。

數獨橫掃世界

1979 年在紐約,Howard Garns 引發了一系列永久改變世界的大事件——至少在迷戀智力謎題的人眼裡如此。他發明了一種新型的數字遊戲,以“數字拼圖”(Number Place)為名刊登在《戴爾鉛筆字謎》(Dell Pencil Puzzles)和《字詞遊戲》(Word Games)雜誌上。之後它傳入了日本,並在那裡以“數字は獨身に限る”的名字流行起來,名字的意思是“數字必須是‘獨身’的”。它的簡稱就是“數獨”(sudoku)。

數獨基於一個9X9的拉丁方。要求將數字1 至9 填入方格中,使之在每行每列都只出現一次。不過,它還有一條附加的要求。9X9的方格被切割成9個3X3的小方塊。每個小方塊中也都要包含數字1 到9。你可以從一個完全空白的方陣開始,不過這種謎題一般都事先填好了個別數字作為提示。遊戲的任務就是填滿其他的空格。

數獨遊戲所給出的提示都是經過精心選擇的,這一數學步驟的精妙之處令人吃驚。首先,給出的提示必須使得謎題有解。人們必須有辦法填滿方格,並滿足遊戲的規則。這並不太簡單,因為自相矛盾的設定往往並不能一下子看出來。更精細的要求是,遊戲應當恰好只有一個解。從給出的提示開始,能夠僅僅通過邏輯推斷的過程,最終得到唯一可能的答案。這也就是數學中所說的存在唯一性問題。

與數獨有關的一個有趣的問題是:保證恰有一解所需提示的最少數目是多少?令人驚訝的是,儘管這個遊戲風靡全球,這個問題的答案仍然是未知的,但人們廣泛猜測是17。正確答案肯定不會比這個大。如果你能夠證明17 就是最小的,或是找到了某種組合帶有16 個提示又保證唯一解,那你肯定能夠獲得數獨特級大師的地位(即使你並不會解決這些麻煩的數獨謎題)。

糾錯的藝術

是一個5X5的拉丁方,裡面有一處錯。你能找到它嗎?(下面有答案。)

enter image description here

在第四行裡有兩個5。所以,其中的一個應該是4。但是是哪一個呢?我們分別在它們各自的列中比較。第三列沒問題,但第五列也有兩個5 而沒有4。所以第四行最後一列的5 應該為4。

這表明拉丁方有一種值得注意的性質:即便裡面摻進了一個錯誤,它也能夠被很容易地識別並糾正過來。上面幾行的推理過程易於自動化,並由計算機來執行。這是非常有用的,因為錯誤在我們的生活中實在是俯拾皆是。

在資訊時代,自動識別並糾正錯誤的能力有著很高的價值。舉例說,無線電傳送數字訊號時,由於其他訊號的干擾和環境噪聲的影響,會引入一些誤差。通過將拉丁方編碼進資料流,我們就有可能在接收到訊號之後消除這些錯誤。

糾錯是數獨的核心,並且它還顯示出了高水平的精確程度。這種謎題的要點就在於,要想補全全部的81 個數字,我們只需要其中小小的一部分,比如其中的17 個。

通過在二進位制的資料流中構造數獨或者其他類似的結構,那麼即使其中很大一部分的訊號丟失或者受到干擾,全部的資訊依舊能夠以幾乎完美的精度被重建(參見第35 問)。實際上,在1948 年C. 夏農證明了一項基本的結果:要能夠以較高的精度重建資訊,所允許丟失的資訊量沒有上限。在這項非凡的工作中,他說明了存在著某種對資料的編碼方法,使得資訊可以在任何要求的精度上得到重建,同時又無需使訊息長到不切實際。

最後,給大家留一個數獨遊戲大家來解一下。頁面右側本文附件可下載

enter image description here

本文內容選自《如何破解達芬奇密碼?35問揭示數學之美》

相關文章