射鵰英雄傳中的「數學」

文/和碩雍親王

剛看到這兩個圖的童鞋們不要慌,不要慌,雖然昨天四爺講了周易,講了「亢龍有悔」,但今兒個四爺並不打算講周易圖書學派所認為的周易之源——《河圖》《洛書》,那今兒個說點什麼呢?

四爺要來說說黃蓉老師留的「作業」。

哎呀,這個黃老師是個文理全才,要放現在,那也是標準的學霸。

因為中國的古人偏見地認為《河圖》和《洛書》這兩個帶足了東方神秘色彩的東東是古老中國數學的起源,四爺本著尊重傳統之心,少不得把他們放在上面鎮一鎮,不然何以顯得四爺有專業素養呢?

好在四爺是理工科出身,知道古代中國數學起源其實並非那兩個東東。迄今流傳下來的中國最古老的可以稱得上是數學典籍的,有兩部書,一部叫《周髀算經》(以下簡稱《周髀》),另一部叫《九章算術》(以下簡稱《九章》)。

《周髀算經》雖算不上嚴格意義的數學著作,因為它是以數學工具來闡述宇宙模型的天學文獻,但也勉強可以算作應用數學,可惜的是我們今天已不能確切地知道它的作者是誰了。

稍晚於《周髀》,而誕生在秦漢之間,由荀子的門人張蒼主持編撰的《九章》則是標準的應用數學著作。

這個張蒼是個相當傳奇的人物,他的老師便是戰國末葉赫赫有名的荀子,他的三個師兄呢:一個叫韓非,是被後人讚譽為集法家之大成的思想家;一個叫李斯,先做秦國的廷尉(相當於國家最高法院院長),後來成了秦朝的丞相(相當於國家總理);另一個大家可能陌生一些,但在中國經學史上卻有舉足輕重的地位,因為沒有他,就沒有「詩經」三大今文學派之一——「魯詩」一派,但他淡泊名利,我們只知道後人稱他作「浮丘伯」(或作包邱生),至於是否姓浮丘,還是家在浮丘,伯是他的名、字,還是排行,我們很難考證,也正因為他淡泊名利,所以他經常被後人神化為和安期生一樣的仙人。

正是得益於這樣高級別的人脈圈子,又兼「好書律歷」,張蒼在秦朝才得以步入高級官僚隊伍,做了一名主管「柱下方書」的御史,大約相當於國家圖書館館長。

其後天下大亂,秦朝滅亡,張蒼在家鄉陽武投靠了劉邦的義軍,但因犯罪,「坐法當斬」,當他脫了衣裳,伏在行刑砧板上時,劉邦的結義大哥王陵見他「身長大」、「肥白如瓠」,奇怪怎麼有這麼好看的男子(當時的審美情趣和現在有很大不同),便替他向劉邦說情,因故得以釋放,才保住了一條性命。

後來劉邦創立漢朝,做了皇帝,滿朝公卿沒幾個是文化人,便想起了張蒼,用他為「計相」(大約相當於國家統計局局長),「緒正律歷」,「故漢家言律歷者,本之張蒼」。

史稱「蒼本好書,無所不觀,無所不通,而尤善律歷。」(《史記·張丞相列傳》)張蒼後來在漢朝做到了丞相,因感激王陵當年的美言之恩,「常父事王陵」。年老退休後,口中的牙齒都掉光了,便用「女子為乳母」,只能食用女子的乳汁來維持生命,「妻妾以百數」,活了一百多歲才死去。

最早的《周髀》和《九章》,它們研究的問題和領域也限定了古代中國數學發展的軌道,代表了古代中國數學的兩種不同風格,正如歐幾里得的《幾何原本》在西方數學史上的地位和意義。

《射鵰英雄傳》第二十九回《黑沼隱女》集中展現了古代中國數學,特別是宋元時期的一個側面。當郭靖和黃蓉遇到瑛姑時,她正在計算55225的平方根,這個題目便是出自《九章算術》第四章《少廣》。

《少廣》按照三國數學家劉徽的說法是「以御積冪方圓」,就是研究面積和體積的逆運算,換句話說,也就是開平方術和開立方術。《少廣》給出了世界上最早的開平方和開立方程序。

其後北魏數學家張邱建《張邱建算經》中發展了《九章算術》中的開立方術,這就是我們在書中見到的瑛姑所解的第二題:求34012224的立方根。便是出自《張邱建算經》了。

鑒於很多童鞋對數學公式過敏,而中國古籌演算法又太過專業、枯燥,這裡四爺就不詳細介紹了,感興趣的童鞋可以私信四爺,或者自行覓書專研。

開平方術和開立方術都是古代中國數學中極其基本的知識和技能,因為它們是後面更為煩難的各種實際應用的基礎解題工具。

後來黃蓉又提到了「天元術」(即求解多元方程式)和「幻方數」(即由《洛書》和《河圖》所生髮的幻方問題),這個以元代數學家朱世傑的《四元玉鑒》和南宋數學家楊輝的《續古摘奇演算法》研究最為著名。此文不再展開深論。

重點要說的是黃老師「氣極」之下,給瑛姑留的「作業」,一共三道題,據書上說:

第一題:「七曜九執天竺筆算」;

第二題:「立方招兵支銀給米題」;

第三題:「鬼谷算題」。

有意思的是,第一題其實根本不是一道具體的算題,而是一門主要來源於印度,但在傳播過程中可能帶上了中亞色彩的曆法、星占和擇吉推卜之術。

所謂的「七曜」,指的是日、月和太陽系中金、木、水、火、土五大行星,合稱「七曜」,這是個舶來品的術語,中國古典的術語其實叫作「七政」。

《尚書·舜典》:

「在璇璣玉衡,以齊七政。」

說的就是這個,即以北斗七星為坐標,來研究日、月、五大行星的運行規律。

「九執」即在「七曜」外,再加上月球軌道白道的升交點和遠地點兩個「隱曜」,稱為「羅睺」和「計都」,因九星與日時相隨逐而不離,故稱「九執」;此外還有「十一曜」之說,即再加上「紫炁」和「月孛」兩個隱曜,合稱「十一曜」。但這四個隱曜都不是真實存在的實際星體,而是印度星學家為了構建體系的方便而假想出來的。

「七曜九執之術」大約在東漢末年傳入中土,主要盛行於隋唐兩宋之間,所以我們看到《隋書》、兩《唐書》和《宋史》的「經籍志」或「藝文志」中著錄了大量的流行於當時的「七曜九執之術」的著作,然而可惜的是均未流傳下來。

但我們的東鄰——日本,因為大量地吸收了我們中國隋唐兩宋的文明文化,所以在今天的日語中,一周七天的名稱仍舊沿用了「七曜術」之名,即:

日曜日——Sunday

月曜日——Monday

火曜日——Tuesday

水曜日——Wednesday

木曜日——Thursday

金曜日——Friday

土曜日——Saturday

和我們中國唐代古人所使用的一模一樣,這真是古人所說的「禮失而求諸野」啊。

「七曜九執之術」本質上是一種生辰星占學體系,包含曆法成分,即通過年、月、日、時的行事宜忌來推斷吉凶。

有意思的是隋唐時代本身就是個預言大流行的時代,像「桃李子、得天下」(預言李氏將得天下)、「女主武王」(預言武則天稱帝),後來連預言書的老祖宗——《推背圖》都要攀附到當時算學家李淳風袁天罡的身上,所以首相長孫無忌得唐太宗李世民授意在他主持編撰的《唐律疏議》中規定:

諸玄象器物、天文圖書、讖書、兵書、七曜歷、太一、雷公式,私家不得有,違者徒二年。私習天文者亦同。

私藏和私習天文學者要處以兩年有期徒刑,有了這樣的法律和政策,也難怪中國的天文學發展不起來,天文學人才日漸凋落了。

或許你說天文學無足輕重,但四爺想說的是那數學呢?

要知道中國古代數學是帶有濃厚的應用數學風格,其最重要的應用領域便是天文學,這是自《周髀算經》以下一脈相承的看家特色。那些中國古代的數學家孜孜以求的數學研究其實大都是為了解決天文學問題,或曰修改和制定曆法。所以他們首先先是天學家、是星象家、是曆法家,是太史院、是司天台、是欽天監的官員,其次才是不為當時人所知的數學家。

就拿後面兩題來說,「立方招兵支銀給米題」所用到的「招差術」(即現代數學中的高次內插法)其實是為了精確地推算太陽和月球視運動的速度和位置。因為太陽和月球的視運動對時間來說並不是一個二次函數,所以即使用不等間距的二次內插公式也不能得到滿意的結果,所以必須使用「招差術」這樣的高次內插法。

宋元之間的《授時歷》之所以比歷史上的其他曆法大為先進,其最重要的一點便是主持編造《授時歷》的王恂郭守敬使用了「招差術」來推算太陽逐日運行的速度和在黃道上的經度,以及月球在近地點周日逐日運行的速度。他們使用的便是三次內插法。

而「立方招兵支銀給米題」出自朱世傑的《四元玉鑒》卷中之十,研究的正是高次內插法:

「今有官司依立方招兵,初(第一日)招方面三尺,次(第二日)招方面轉多一尺……已招二萬三千四百人。問招來幾日?」

依次算出其「上差」(三階等差)、「二差」(二階等差)、「三差」(一階等差)和「下差」(公差),化為求解一個四次方程,再用我們上面提到的開平方術這個基礎工具予以解答。

這在級數和微積分兩大分析工具沒有發明之前,能做到這一點,可以說是相當地不容易。

再看第三題「鬼谷算」(南宋周密所稱),民間又稱「韓信點兵」,實際上就是出自《孫子算經》中最著名的一次同餘式問題,屬於初等數論,其演算法又稱為孫子剩餘定理。《孫子算經》的作者和編寫年代目前都不清楚,大約在公元四五世紀,隋唐之前。

《孫子算經》的一次同餘式理論到了南宋數學家秦九韶的手中才發展為一個系統的理論,秦九韶稱之為「大衍求一術」。因為要找的「衍數」和「乘率」之積除以另一個「定母」,結果餘數要為一,所以叫做「同餘」,又叫「大衍求一」,就是這個道理。秦九韶給出的「大衍求一術」方法與歐幾里得的演算法是等價的。

孫子剩餘定理和大衍求一術的具體演算法,四爺在這裡就不展開講了,因為一來比較專業,二來大家也可以通過各種渠道搜到,畢竟這是中國古代數學對世界數學比較有影響的貢獻之一。

而四爺想說的是不管是中國古代的同餘式理論也好,還是秦九韶的「大衍求一術」也罷,實際上都是用來解決在曆法中推算上元積年問題的。

那麼,什麼叫「上元積年」呢?

簡單來說,就是從數學家開始治定曆法的那一年往前推,一直推到日分(即天)、月分(即月)、甲子(即年)、食分(即日月食),乃至日月五星行度均同,以此作為曆法中節氣、朔望、日月食和五星的共同起算點,這個起算點是為上元。(有點兒小繞口)

上元那一點:

「當斯之際,日月五星同度,如合璧連珠然。」(《元史·歷志》)

即日、月、五星連珠。從此開始起算,到治歷之年的歲數,便是「上元積年」。古人治歷,首重曆元:

「建歷之本,必先立元,元正然後定日法,法定然後度周天以定分至(即春秋分和夏冬至點),三者有程,則歷可成也。」(《史記·曆書》)

年始於冬至,月始於朔旦,日始於夜半,甲子日夜半朔旦冬至,其時便是曆法中所謂的「上元」。

昔人立法,必推求往古生數之始,謂之演紀上元。(《晉書·律曆志》)

這種推算上元積年的問題在數學上,其實就是整數論中的一次同餘式組求解問題,所以要用到同餘式理論,或曰「大衍求一術」。然而自從《授時歷》取消推算上元積年以後,「大衍求一術」也就從此消失了,不僅僅是在曆法中,因為「上元之法久不行用,於是……五百年來無有知其說者矣」。到了明清兩代,則更淪為高雅人數學遊戲的內容,在數學上再無重大建樹。

一項傑出的數學工具因為在曆法中失去了其應用價值,竟導致其在數學上也停滯不前,甚而無人問津,大有失傳之險,這不能不說是中國古代數學最大的特色之一。

相比長於思辨和抽象的古希臘、古羅馬數學家,古中國數學家則像其在社會科學領域所追求的那樣,只看重學術在現實世間的應用價值,而忽視,甚至完全無視其基礎研究,這大約成為了近代中國學術遠遠落後於西方的一個致命要素之一,是值得我們國人好好深思和反省的。

這也是為什麼像華為這樣的公司要大力氣地投入基礎研究。

回顧中國學術起源的東周諸子時期,恰恰是最具思辨和抽象的後期墨家學派與惠施、公孫龍等名家學派最不受中國人的重視,甚至於典籍淹沒,無以為繼,後人連看得懂都成問題,這不知道是幸或不幸。

最後四爺再講一個關於「五星連珠」的故事吧。

傳說劉邦打入關中、兵至霸上的那一年(公元前206年),星學家甘公(也許就是《甘氏星經》的作者)夜觀乾象,看到了「五星聚於東井(即南宮朱鳥之井宿,略當於雙子座)」的天象,也就是所謂的「五星連珠」,因而他向正被陳余打得無處可逃,猶豫是去投項羽還是投劉邦的常山王張耳說:

「東井是秦國的分野,楚(指項羽)現在雖強大,但不久後必為漢(指劉邦)所滅。」

因此建議張耳去投靠劉邦。張耳聽從甘公的建議,果然去投劉邦,結果受封趙王。而五星連珠聚於東井這件事後來也被漢代人視為「此高皇帝受命之符也」,屢次在文獻中被提及。

畢竟「五星連珠」在曆法上也算是天下刷新的標誌啊。

為什麼要用個「又」字?

- 我是有底線的 -
推薦閱讀:

禹音:吳王到底是不是唐太宗的兒子?
禹音:孔子為何不談黃帝
讀《老子》2
【嚴重提醒】謹防國學傳銷

TAG:金庸 | 國學 | 數學 |