杜甫有一首《不歸》詩,懷念一位從弟:
河間尚征伐,汝骨在空城。
從弟人皆有,終身恨不平。
數(shù)金憐俊邁,總角愛聰明。
面上三年土,春風(fēng)草又生。
宋代蔡夢(mèng)弼《草堂詩箋》解釋其中“數(shù)金”一語:“數(shù),所具切,計(jì)也。謂幼之時(shí)識(shí)錢數(shù)也。”清仇兆鰲注引明胡夏客說:“數(shù)金,用‘河間姹女?dāng)?shù)錢’語,以應(yīng)河間。”如果按蔡氏所說,“數(shù)金”就是年幼時(shí)識(shí)錢數(shù),未免有點(diǎn)太小瞧這位從弟了。“河間姹女工數(shù)錢”則是漢代童謠(見《后漢書·五行志》),唐人常用此典來歌詠妓女,原文也不能改成“數(shù)金”,應(yīng)該和這首詩沒有關(guān)系。實(shí)際上,詩中此句是講從弟“總角”時(shí)學(xué)習(xí)聰穎,“數(shù)金”是講他的計(jì)算能力。《九章算術(shù)》卷七有這樣的例題:“今有共買金,人出四百盈三千四百,人出三百盈一百,問人數(shù)、金價(jià)各幾何?答曰:三十三人,金價(jià)九千八百。”金不僅是交易物,而且用于計(jì)算物值、表示物價(jià),所以常常被用來當(dāng)作演算例題。杜甫和我們今天的看法差不多,認(rèn)為數(shù)學(xué)能力可以代表一個(gè)人的聰明程度。我們從這首詩可以了解到唐代士人接受數(shù)學(xué)教育的情況。
那么,杜甫本人的數(shù)學(xué)能力達(dá)到什么水平呢?下面從他的文章里找一些證據(jù)。肅宗上元二年(761),杜甫在西川蜀州為唐興縣令王潛作《唐興縣客館記》,結(jié)尾說:
自辛丑歲秋分大馀二,小馀二千一百八十八,杜氏之老記已。
這里所說的秋分大馀、小馀,是表示節(jié)氣的干支日和時(shí)刻。大馀表示干支日,小馀表示時(shí)刻。由于唐代多次改歷,不同歷法設(shè)定的日分?jǐn)?shù)不同,因此推算出的小馀數(shù)值也不相同。根據(jù)杜甫提供的大馀、小馀數(shù)值加以驗(yàn)算,結(jié)果證明他所依據(jù)的是唐玄宗開元年間頒行的《大衍歷》。
古代歷法都會(huì)設(shè)定一個(gè)歷法起始時(shí)間,稱上元。《大衍歷》給出自上元至開元十二年(724)的年數(shù)(稱積算)為96961740年。據(jù)此推算,自上元至761年的積算為96961777年。歷法還要設(shè)定一個(gè)日分?jǐn)?shù),《大衍歷》設(shè)定的日分?jǐn)?shù)(稱通法)為3040分。一個(gè)回歸年(即二十四節(jié)氣一循環(huán))為365日,所含日分共1110343分(稱策實(shí))。
用策實(shí)乘以積算,所得結(jié)果稱作中積分,即從上元開始到運(yùn)算所求這一年的天正冬至的總?cè)辗帧5?61年應(yīng)為:
96961777×1110343=107660830359511
以中積分除以通法3040,所得結(jié)果即是積日:
107660830359511÷3040=35414746828.78651(日)
積日滿60(即干支一周,《大衍歷》稱為爻數(shù))即除去,剩下的馀數(shù)稱作大馀。小馀則是不滿一日日分?jǐn)?shù)(在《大衍歷》中是3040)的馀數(shù)。在此例中,積日/60的整數(shù)部分為590245780,這樣就可以得出761年冬至的大、小馀:
35414746828.78651(積日)-590245780×60
=35414746828.78651-35414746800
=28.78651
所得結(jié)果中的整數(shù)28,即是大馀。根據(jù)大馀數(shù)可以求得干支日,不過要從甲子次日起算,數(shù)到28是壬辰,也就是此年冬至日的干支。所得結(jié)果中的小數(shù)部分即是小馀:0.78651×3040=2390.9904(日分)。
求出冬至日的大馀、小馀,然后可以根據(jù)“三元之策”推求其他節(jié)氣的大馀、小馀。《大衍歷》給出的“三元之策”公式是:“三元之策,一十五;馀,六百六十四;秒,七。”(見《舊唐書·歷志》)即每一個(gè)節(jié)氣所含日數(shù)為15(參見張培瑜等《中國古代歷法》第八章《大衍歷》,中國科學(xué)技術(shù)出版社2008年版)。
從冬至到秋分共18個(gè)節(jié)氣,用此年冬至小馀加18個(gè)節(jié)氣整日之外的馀數(shù):
滿3040為一日,除去:
14348-3040×4=2188
所得結(jié)果2188,就是此年秋分小馀。
冬至大馀加18個(gè)節(jié)氣整日數(shù),再加小馀滿整日數(shù)的4日:
28+15×18+4=302
滿60(爻數(shù),干支一周)即除去:
302-60×5=2
得此年秋分大馀2。據(jù)此推算出此年秋分在八月十三日丙寅。
以上演算結(jié)果與杜甫給出的761年秋分大、小馀數(shù)據(jù)完全吻合。肅宗時(shí)期已頒行《至德歷》,杜甫特意給出的這兩個(gè)數(shù)據(jù)應(yīng)當(dāng)是他據(jù)《大衍歷》自己推算出的結(jié)果,其中需要進(jìn)行高位數(shù)的四則運(yùn)算和相當(dāng)復(fù)雜的分?jǐn)?shù)運(yùn)算。杜甫是借用這種方式來表達(dá)他對(duì)開元盛世的懷念。這表明他年輕時(shí)曾學(xué)習(xí)過歷法,并掌握其中基本的演算方法。
杜甫還作有《唐故范陽太君盧氏墓志》,盧氏是他的繼祖母,也就是他祖父杜審言的繼室。文中記述盧氏下葬情況:
將入著作之大塋,在縣首陽之東原,我太君用甲之穴,禮也。……塋內(nèi)西北去府君墓二十四步,則壬甲可知矣。
在此大塋中,府君(杜審言)葬壬穴,盧氏后葬取甲穴,所采用的是唐代流行的六甲八卦冢葬法。其法是將墓地橫向、縱向皆七分之,共得四十九穴,中心一穴稱地心明堂。其外三重,為天、地、人穴。帝王用天穴(中八穴),諸侯用地穴(次十六穴),卿大夫以下用人穴(最外一重)。人穴依二十四方位排列,但其中只有甲、丙、庚、壬四穴為吉穴,其他二十穴不可用。杜審言取壬穴,是因?yàn)槎判諏儆谖逍眨▽m商角徵羽)中的商姓,利壬穴。壬在北,甲在東,府君墓恰好在盧氏墓西北。
按照葬法,取穴不但要合甲丙庚壬,而且要與十二建除中的“滿定成開”相交。其法是將墓地橫向、縱向皆十三分之(之所以十三分,是為了留出地心明堂,所以只能取單數(shù)),從四個(gè)方向起建除(建除又與神煞、干支配合)。在十二建除(建、除、滿、平、定、執(zhí)、破、危、成、收、開、閉)中,滿、定、成、開分別位于第三、五、九、十一位。這樣,從四個(gè)方向分別起建除,就會(huì)在由每個(gè)方向而來的第三、五、九、十一位上形成四個(gè)交匯點(diǎn),滿足“滿定成開”相交的要求。這四個(gè)交匯點(diǎn)恰好處在甲丙庚壬四個(gè)方位的延長(zhǎng)線上,也就是甲丙庚壬四穴的取穴處。宋代《地理新書》卷十三有“禽交吉穴之圖”:
圖中虛線表示七分分之,實(shí)線表示十三分之。下方(北)壬所相對(duì)、左方(東)甲所相對(duì)兩點(diǎn),即分別是壬、甲二穴的取穴處。杜甫文中所說“二十四步”,即是這兩點(diǎn)之間的斜向距離。如圖:
《地理新書》卷十三“禽交六尺立成法”中共列出“甲辰冢壬穴”和“乾冢壬穴”七種規(guī)格的墓地大小長(zhǎng)闊(寬)。經(jīng)過逐一對(duì)比后,我們發(fā)現(xiàn)“乾冢壬穴”中一塊規(guī)格最大的墓地與杜氏大塋最為吻合。該墓地“東西三十九步,南北五十一步”(1步=5尺)。按“禽交吉穴之圖”,對(duì)這塊墓地各邊十三分之,甲穴與壬穴的橫向(東西)距離為7/13×39(步),縱向距離(南北)為3/13×51(步),分別是上圖直角三角形中兩條邊的長(zhǎng)度。杜甫文中的“二十四步”,則是這個(gè)直角三角形中斜邊(弦)的長(zhǎng)度。根據(jù)勾股定理a2+b2=c2對(duì)此進(jìn)行驗(yàn)算:
所得數(shù)據(jù)只有微小差別,幾乎可以不計(jì),兩者并非偶然相合。
盧氏下葬離杜審言去世已三十馀年,她葬于甲穴,是按照“臥馬”葬法,后葬附前葬不能排成一列,而要取“雁行斜向”之勢(shì)。這時(shí),要找到甲穴的正確位置,需要按照葬書所列墓地規(guī)格,由壬穴東行21步(7/13×39),再向南行11步3尺8寸(3/13×51)即得,然后可以用斜行24步進(jìn)行驗(yàn)算。兩者相合,即保證位置準(zhǔn)確無誤。這就是杜甫在文中給出“二十四步”數(shù)據(jù)的原因。葬書只給出長(zhǎng)闊步尺,斜向距離需要自己運(yùn)用數(shù)學(xué)知識(shí)進(jìn)行演算。盡管勾股定理的實(shí)用性很強(qiáng),普通土木工人也會(huì)運(yùn)用“勾三股四弦五”的口訣找方(直角),但要進(jìn)行上面這例運(yùn)算,就必須掌握《九章算術(shù)》第九章中才介紹的勾股定理公式以及開方。
從以上這兩個(gè)例子來看,杜甫的數(shù)學(xué)知識(shí)雖然還不能與數(shù)學(xué)家相提并論,但放到現(xiàn)在,還是能夠與一般接受中等教育的人一比高下的。