數學和下棋有什麽關系? 很多人都認為是有關系的,在一些小學中,聽說是要挑選會下棋的孩子,
老師就會挑選那些在算術考試中得了 100分的孩子,以為那樣的孩子是能下棋
的。這些孩子中的一些成了有名的棋手,大家就會誤解,數學和下棋是有必然
聯系的。
在1997年 8月末,世界棋王卡爾波夫來到中國,中央電視台的《體育漫談
》節目,還讓這位國際象棋的超級大師談談下棋和數學的關系。
問:你小時候是不是數學特別好?下棋和數學有什麽關系沒有?
答:數學和象棋,在邏輯上是有聯系的,但是要從具體上來說又是很難的。
棋手中很多是畢業於高等學校,但是學數學很高深的還不多。我本人在學習上,
是經過了一個過程的。我是從數學進入到機械,又從機械進入到經濟,最後,
我是從聖彼得堡大學獲得了經濟學博士的學位。
類似卡爾波夫這樣的回答,我已在圍棋手中間聽到過多次。特別是對電腦
有研究的俞斌九段,就一直被問到這樣的問題。中國圍棋手的回答,和這位國
際象棋超一流棋手的回答不會有什麽兩樣。俞斌的說法是,“圍棋的計算和數
學的計算是不同的。”想要在一局圍棋比賽中,下出什麽“勾股定理”或者“
三元兩次方程”或者“歌德巴赫猜想”,這都是很可笑的事情。一個小學生的
數學成績好,其綜合素質,可能要比成績不好的孩子要好一些,這是素質中的
一部分,就可能是適宜下棋的。但是,我們不能說,數學不好的孩子,是下不
好棋的。至少,在中國古代,還沒有數學這樣的一門學科,科學技術在中國,
是士大夫們看不起的。那些棋手在少年時代,是不能從數學上去發現才能的。
圍棋的“計算”這一個概念是比較抽象的。就和象棋的計算一樣,大多數
是在看我走什麽,對手會應什麽。無論是卡爾波夫還是胡榮華,在下棋的時候
的一個習慣的動作,都是有一個不斷微微的點頭動作,這個動作是很有節奏的,
這是大師在計算他們的一步步的棋。然後,他們有一個較長時間的停頓,他們
依然在思考。在思考這樣走了之後,會形成什麽樣的局面,對誰有利。然後,
又開始了一個微微點頭的動作,這是又開始了一種新的思路。
圍棋或者只需要最簡單的數學的計算,那就是加減乘除。這是為了點“目
”的,但是在更多的前半盤的比賽中,計算是有一點抽象的,雖然是仍然用目
來做單位,但是,這種計算,是有很多的不確定的因素的。一手棋的價值有多
少,這還是一個沒有定論的事,這也是電腦圍棋還沒有獲得很大進展的原因。
要說清這個問題,是要有數學家來發言的。好在從古到今,有不少數學家
或科學家是棋迷。
第一位數學家的話,讓我們大吃一驚。
他是唐朝的一行和尚,他也是一位天文學家。在中國的歷史上,有“疇人
”這一個名稱,可以統稱天文學家和數學家。一行就是最有成就的“疇人”之
一。他精通歷法,重新測定了 150多顆恆星的位置,發起在全國12個地點進行
天文觀測;並且歸算出相當子午緯線的長度。
這是現代人對他的評價。中國以 前的數學總是和天文聯系在一起的,迎合封建制度,數學是不需要的,而天文
是需要的。中國是以農業立國的,天文就非常重要。而數學只不過是為了天文
而存在的副產品。天文在過去的年代,又經常和迷信在一起,每一顆星都有象
征的意義。數學就有一點神秘了。數學家也會成為無所不知的能人了。
他對圍棋的評論是有一點貶義的:
一行本不解弈,因會燕公宅,觀王積薪一局,遂與之敵。笑謂燕公曰:此
但爭先耳,若念貧道四句乘除語,則人人可為國手。
看來,一行確實是個不簡單的人。他就看了一局棋,就能學會下棋,而且,
立刻就能夠和當時棋下的最好的王積薪成為敵手。但是,這樣的描寫是站不住
腳的。破綻就在後面,一行在評論圍棋的時候,出現了一點問題。他的話前一
句非常正確,圍棋就是爭先。就是在比賽中永遠不失去主動。這是常識性的判
斷,知道的人太多了,也就會成為一句沒有意義的話。在後半句中,圍棋就變
成一種太簡單的遊戲了。一種遊戲能用四句口訣就能解決,那麽,比賽就會像
解一道代數式,棋局就不會有很多的變化,這是和圍棋的實情不同的。和歷史
上知識分子推崇圍棋的潮流不同,一行是在貶低圍棋。
一行在自己的專業上無疑是有權威的,但是,他不會在任何的地方都是權
威。在夜空中找到一顆星星,並且確定它的位置,對一行並不很難。而在棋盤
上和王積薪對抗,對一行來說,卻不會是一件容易的事。如果要拿出懷疑的證
據,那麽,除了《酋陽雜記》之外,沒有對此事的記載。另外,這樣有效的棋
訣,隻短短的四句,竟然沒有流傳下來。因而在世界上直到今天,“國手”還
是鳳毛麟角。
無獨有偶,南宋的哲學家陸九淵躺在床上,將一個棋盤掛在牆上,一連看
了兩天,突然跳起來說,這不是河圖嗎?於是他的下棋水平,立刻可以讓林安
的高手一先。“河圖”實際上是一種數字的排列方式,在現代,是沒有一個專
業棋手會認為河圖中會有圍棋的秘密的。
或許,這都不是真的,而是有人用圍棋和一行和陸九淵開了個玩笑。這樣
發表出來的觀點,是有一點離譜,很難叫人感到有研究的價值。
順便說一句,古代的人們可能以為棋下得好,不是長期努力的結果。就連
唐朝的第一高手王積薪的高超棋藝,也是在很短的時候獲得的。
《雲仙雜記》:王積薪夢青龍吐棋經九卷授己,其藝頓精。
《集異記》:王積薪從明皇幸蜀,夜宿深山,聞婦姑對談。天明,積薪具
禮以問,婦姑教以攻守、殺奪、救應、防守之法,從此天下無敵。
這是對圍棋的拔高,以為圍棋手之上,還有神,世上最好的棋手,是不能
戰勝神仙中的婦女的。這從科學的角度,也是很難有研究的價值的。在另一種
傳說中,還有她們在晚上用“口談”的方法下棋的描寫。有人將當夜這婆媳倆
的對局頭幾手,放到了棋盤上,一看大吃一驚。這樣的布局,是當代的高手也
難理解的,看來確實是“仙人”所為。
貶低和拔高都是離開了生活的真實,離開了圍棋的真實。
明朝才子王世貞寫了一篇《弈問》,專門回答關於圍棋的種種疑而未決的
問題。上面的問題恰巧都在他的“研究范圍”之中。
在回答一行和尚的這幾句話時,王說,這種情況是有的,一行是“神於數
”的人,神於數,是可以觸類旁通的。但是“四語乘除人人國手”,是不可能
的。對於陸九淵的事,只不過是他的門徒借類似一行和尚的情節,來抬高老師
罷了。況且,陸九淵的棋實在是不夠上品的。
在回答王積薪是否在山中學得了棋時,王說,可能是有的,但是,這不是
王積薪自己編出來抬高自己,而是別人在借神而貶低王積薪。你看,對王積薪
就教給攻守劫殺這樣簡單的東西,還說這人可以教給他“平常的形勢”。這樣
的說法,貶低王積薪是可以看出來的。
王世貞的觀點,有一點客觀性,可以參考。至少,對一行和尚和陸九淵的
評價中,對數學和圍棋之間的“硬性的”聯系做了否定。
北宋科學家沈括對圍棋做了一番研究。沈括是科學上的一個雜家,他的建
樹很多。他在數學上的成就,是創立了“隙積術”(二階等差級數求和法)、
“會圓術”(已知圓的直徑和弓形的高,求弓形的弦和弧長的方法)。
他在《夢溪筆談》中,對圍棋做了數學式表述。這在宋朝這一圍棋十分興
盛的時代,在眾多的圍棋評論中是獨樹一幟的。錢寶琮在《宋元數學史論文集
》中,認為沈括討論圍棋棋局的計算方法,是在古代的數學史上不可多得的寶
貴文獻。錢先生看到了原文中的錯誤,一一加以校訂。沈括的計算方法,用現
代的語言和算式說出來,就是:
每一個棋局,到終局時,每一個交叉點總是不外乎三種情況。黑、白、空。
所以,在計算全局的可能的變化時,是很容易的。不過,由於數字特別大,在
當時是沒有辦法將它說出來。
如果是方2路用4子,那麽:
3^4=81
如果是方3路用9子,那麽:
3^9=19683
方4路,那麽:
3^16=43046721
方5路,那麽:
3^25=847288609443
方6路,那麽:
3^36=150094635296999121
下完一盤正常的棋,其可能的變化,是3^361,結果是“連書萬字52個”。
這就是所有的變化了。
用現代的算法,是這樣的:
logN = 361log3
= 361X0.47712
= 172.24075
N ≈ 1.74 X 10172
每 4位數可以寫一個“萬”,172÷4 = 43。
沈括在這裡計算有錯誤,應當是“連書萬字43個”。
後來,中科院的專家,用電腦算出總局數為:
1740896506590319279071882380705643679466027249502635411948281187
06801051676184649841162792889887149386120969888163207806137549871813
55093129514803369660572893075468180597603
這是一個天文數字。即使每一秒鍾下一局棋,要下完這樣多的局數,粗略的
計算,要5.52X10164年,這是一個 164位數,照沈括的寫法,是要寫41個萬字。
能活這樣長久的,大概只有太陽和地球了。
數學的計算,總是將最規矩的條件來作為計算的前提。這樣的計算,就還有
不夠周全的地方。這樣大的數字,是沒有辦法用實踐來驗證是否能夠窮盡圍棋的。
一種意見是圍棋是沒有辦法窮盡的。圍棋還有打劫,還有大眼填滿提空,整
盤棋黑白都擺滿了之後,還可以用一枚棋將對方所有的棋全提起來,然後重新開
始。中國棋手馬曉春比較傾向於這種意見。
另一種意見是,實際上的棋局,遠遠地少於這些數字。理由不外乎是,圍棋
是兩人在輪流對下,所以,在一般的情況下,是一半黑棋,一半白棋,或者是由
於提子而相差不多。又由於圍棋要有眼才能生存,黑棋、白棋都不能佔盡空格。
而一盤棋要能夠分出勝負,一般來說,又要使黑白子各在 100手以上,這有使全
空格或大多數的空格是不可能的。更從棋型的角度來看,有很多是根本不可能出
現的。韓國的棋手劉昌赫認為,實際上的棋局是有窮盡的。有人認為,這一數字
在3120左右。
在這兩種觀點面前,靜靜想一想,是一點也不矛盾的。馬曉春說的是一種數
學的模式,而劉昌赫說的是一種實戰的情況。
但是,這種計算是一種凝固的計算,沒有先後的次序,而在比賽中,先後的
次序是不能不看的。所以,同樣的結果,可能會有不同的過程。
這樣,另一種計算方式就會出來了。在第一步棋落下的時候,有 361種選擇,
在第二步棋落下的時候,有 360種選擇,……
這樣的算式是:
361X360X359X358X357……X2X1
這樣的算式稱作是361的階乘,寫為“361!”。
說出來叫人驚訝,在頭三步棋中,就有46655640種選擇。
在我女兒升入大學的那一年,有一點空閑,她為我用對數計算了這一個“361!”,
用了整整兩天。她在這 361個數中,分解出 71個質數,大致算出“361!”是一個
756位的大數,比 3^361要大得多!(日本曾計算出結果為 768位數)
不過,在專業棋手看來,這樣的數字更是一個很虛的數。例如,開局的選擇
是10多種,至多不會超過50種,沒有一個人會將第一手放在“ 1.1”這樣的位置
上的。而在對手和你的棋子糾纏在一起的時候,你能選擇的點是不多的,你不會
離開這一戰場,去空曠的地方下棋。
但是,這也是一種數學的模式。正像國際象棋的電腦,在比賽中,選擇每一
步棋的時候,總是要掃描一遍所有的棋子,來做一比較。“深藍”每秒有兩億次
的計算,但是,卡斯帕羅夫認為,他雖然只有每秒三步的計算速度,但每一步都
是有意義的。他的選擇,只有十來種。而電腦的大多數的計算是浪費在那些“臭
棋和昏著”中的,而電腦是不得不作這樣的全覆蓋性的掃描的。
在采訪《黑白之道》的時候,我曾到過中關村,見到了著名的數學家吳文俊。
記得那一天,北京正在下雪,就在這樣的北方典型的環境中,聽到了上海的本地
話。這使我這樣一個常年在外奔波的人,感到一種特別的親切。
他是國際公認的數學大家,他的“拓撲學”的研究成果,被冠於他的姓氏。
但是,他是一個棋迷。他說,在研究之余,是會去看圍棋的電視的。他喜歡
聽華以剛、程曉流和王元的講棋。在家中,也有圍棋和棋子。順便說,在中國科
學院中,有不少的棋迷。當然,像吳先生這樣的院士科學家兼棋迷,還是不多的。
問吳文俊對數學和圍棋的關系,是乾脆的一句話回答:圍棋和數學無關。
他後來寄來了不少的資料,我已經將這些資料寫入到上面的文章中去了。
在采訪中,在電話中,在書信中,這位數學大家對圍棋的一往情深是能夠感
受到的。但是,他是現代的科學家,是崇尚科學的,他不願意因為喜歡圍棋而說
假話。在以下的“語錄”中,你是能夠了解他的觀點的。恰巧,這就成為這一篇
文章的科學的總結。
對於沈括,我十分佩服,尤其是他不僅提倡而且親身實踐作科學試驗,如果
這一點早能為人認識而跟上,中國早就成為科技大國了。但對《夢溪筆談》中的
數學部分,則我不敢恭維,棋局的總局數更不值一提,對棋局的過分簡單化,固
然不值一笑,計算也有錯誤,宋時筆算尚未傳入(唐時雖傳入而未受重視),沈
括想來只能用籌算,因而對 3^361這樣的大數就很難計算,並且出錯。對現在的
計算機則是輕而易舉的。
關於棋理,有一個有趣的數學定理,計算機的創始人之一 Von Neumaun,也
是所謂博弈論或對策論的創立者,1994年的諾貝爾獎金得主,都是因應用博弈論
於經濟學有貢獻而得獎。Von Neumaun 的定理大意是說,兩人博弈,勝負已定。
自然這要做數學上的說明,而且只是一個抽象的定理,與真正的棋局無關。
橋牌有深奧的數學理論,且有法國科學院士的專著,圍棋我相信沒有,以後
也很難會有,我個人的意見是:數學家不要在這上面浪費時間和精力。
但我對於計算機下棋還是有興趣的,最近看報紙,計算機已有國際象棋的新
程序,打敗了卡斯帕羅夫,還計劃由計算機和卡斯帕羅夫作一系列比賽。但這主
要是程序編得好,計算機速度大大提高之故,與數學完全無關。
我家裡的計算機有一個圍棋的程序,我與計算機下過一次,計算機下起來很
有架勢,但還是輸給了我這個臭棋手,但從國際象棋的情況來看,編出一個較好
的圍棋程序,用超高速度的計算機,要打敗一個中低段位的圍棋手,在近期內還
是可能的,但這仍與數學無關。
數學是要算的,圍棋恰恰是不能算。數學的算和圍棋的“算”是不一樣的。
圍棋要做到真正能夠進行數學處理,首先要考慮建立數量的關系,說得簡單一點,
就是要“定量”。沒有這一步,就是難的。比如說圍棋的子力,這枚子放在棋盤
上,位置高低,光說子的力量大或者小不成功,一定要講子力的多少。
這樣的表達方式,從現在看還非常遙遠。
要實現圍棋電腦與人的對弈,得等“定量”的問題解決。創造性的東西是無
法估計它的進程的。或許在幾年中有人想出來,或許幾百年也沒有人想出來,這
東西很難說。但我相信,這東西十分難。
已故老作家竹可羽先生寫了一篇文章,將三線作為邊角線,四線為中腹線,
三線圍住邊角 136個交叉點(目),用去48枚子。由此可計算出每枚子的價值。
136目÷56=2.4286(邊角線每個子的平均值)
121目÷48=2.5208(中腹線每個子的平均值)
中腹每一枚子的平均值大於邊角線每個子的平均值0.09目, 而棋盤的大小離
開19道,不論是往大還是往小,差數都會變大。這就是17道發展到19道的原因,
也正是19道不能發展到21道的原因。中腹與邊角正好成為對抗的力量。
這才是真的數學。這裡有幾個原則先定下來,既要取勢又要取地。這篇文章
論證的是邊角佔地多還是中間佔地多,這裡就有定量的問題。
今後誰在圍棋上要突破,先得將問題簡化,把不必要的東西刪去,重要的保
留下來。簡化之後再考慮。竹可羽先生就是把問題簡化了,才使他的研究十分精
彩。
圍棋對我的工作沒有幫助,而且我的數學對圍棋也沒有幫助。
圍棋和數學相像的是,數學經常假設一些什麽,推測一些什麽。如果假設很
多,結果很少,就沒有什麽意思。如果假設很少,推出的東西很多,這就有意思,
有價值了。圍棋正是這樣,它的規則十分簡單,四麵包圍你就吃掉。而且有兩個
眼就吃不掉,這在實際上是很深刻的,容易得到數學家的愛好。
數學和圍棋是在各自的軌道中運轉著。
數學和圍棋都是對世界的理解和表述,不過用的不是相同的語言。
圍棋中的數學問題,和下棋本身無關,這和國際象棋一樣,可以說是“物以
類聚”。
難怪,數學家吳文俊,和國際象棋世界冠軍卡爾波夫表述的,沒有什麽兩樣,
這真是“英雄所見略同”。