2020年9月15日 星期二

杜甫的算術...... 非常厲害?秋分是什麼時候

「國破山河在,城春草木深」,「劍外忽傳收薊北,忽聞涕淚滿衣裳」,詩聖杜甫的詩大家不陌生,許多詩也收錄為國文課文讓我們不得不熟悉。杜甫當然不是只會寫詩,也有許多文章傳於後世。眾多文章裡,杜甫在【唐興縣客館記】中,最末留下了讓人難以參透的一句:

中興之四年,王潛為唐興宰,修厥政事。始自鰥寡惸獨,而和其封內,非侮循循,不畏險膚,而行而一。諮於官屬、於群吏、於眾庶曰:「邑中之政,庶幾繕完矣。惟賓館上漏下濕,吾人猶不堪其居,以容四方賓,賓其謂我何?改之重勞,我其謂人何?」咸曰:「誕事至濟厥載,則達觀於大壯。」作之閈閎,作之堂構,以永圖崇高廣大,逾越傳舍,通梁直走,嵬將墜壓,素柱上承,安若泰山,兩傍序開,發泄霜露,潛靜深矣。步櫩復霤,萬瓦在後,匪丹雘為實,疏達為迥廊,南注又為覆廊,以容介行人,亦如正館,制度小劣。直左階而東,封殖修竹茂樹;挾右階於南,環廊又注,亦可以行步,風雨不易。謀而集事,邑無妨工,亦無匱財,人不待子來,定不待方中矣。宿息井樹,或相為賓,或與之毛,天子之使至,則曰邑有人焉,某無以栗階。州長之使至,則曰某非敢賓也,子無所用俎。四方之使至,則曰子貺某多矣,敢辭贄。或曰明府君之侈也,何以為人?皆曰我公之為人也,何以侈!子徒見賓館之近夫厚,不知其私室之甚薄,器物未備,力取諸私室,人民不知賦斂。乃至於館之醯醢闕,出於私廚;使之乘駟闕,辦於私廄。君豈為亭長乎?是躬親也,若館宇不修,而觀台榭是好,賓至無所納其車,或浩蕩無所措手足,獲高枕乎?其誰不病吾人矣?疵瑕忽生,何以為之?是道也施捨,不幾乎先覺矣?杜之友朋歎曰:「美哉!,是館也成,人不知,人不怒,廨署之福也。府君之德也。」府君曰:「古有之也,非吾有也,余何能為?是亦前州府君崔公之命也,余何能為!」是日辛丑歲秋分,大餘二,小餘二千一百八十八,杜氏之老記已。

呃,這是什麼?兩個數字,$2$、$2188$?杜甫密碼?

這句子考倒了後代千餘年,為其作注者,有的不知所措胡言亂語,有的認輸,這到底是什麼密碼?

杜甫 (圖片來源:Wikipedia)







是日辛丑歲秋分,大餘二,小餘二千一百八十八,杜氏之老記已。

秋分、大餘、小餘?

初次接觸這幾個名詞數字的朋友可能會一頭霧水,但讀過上兩篇【二十四節氣 (4) :如何推算冬至是未來的哪一天?】【二十四節氣 (5) :如何推算二十四節氣是未來的哪一天?】的讀者,可能會意識到,這個該不會是在推算節氣吧?杜甫?你?

簡單複習一下:上兩篇提及了,唐代當時推算節氣的方法是利用上元積年推算出冬至,再累加天數至欲求得之節氣,如冬至到秋分過了$18$個節氣,亦即過了$\frac{18}{24}$個回歸年,再根據當時推算出的常數便可計算出。

下面考據可能會有點繁瑣,懶得看的話跳過沒關係,直接欣賞數字之美就可以了!

【唐興縣客館記】寫於「辛丑年」。杜甫生於西元$712$年,卒於$770$年,過世時不到$60$歲,所以人生中只會有一個辛丑年,簡單查詢可知應是唐肅宗上元二年(西元$761$年)。這時期根據史書的記載:

新唐書卷二十七下 志第十七下 曆三下至肅宗時,山人韓穎上言《大衍曆》或誤。帝疑之,以穎為太子宮門郎,直司天臺。又損益其術,每節增二日,更名《至德曆》,起乾元元年用之,訖上元三年。

乾元元年(西元$758$年)至上元三年(西元$762$年)應該是改「大衍曆」(西元$729$年 - 西元$758$?年)而使用「至德曆」,但史書中並無記載「至德曆」使用的相關常數。

新唐書卷二十九 志第十九 曆五寶應元年六月望戊夜,月蝕三之一。官曆加時在日出後,有交,不署蝕。代宗以《至德曆》不與天合,詔司天臺官屬郭獻之等,復用《麟德》元紀,更立歲差,增損遲疾、交會及五星差數,以寫《大衍》舊術。上元七曜,起赤道虛四度。帝為制序,題曰《五紀曆》。

短短幾年後,寶應元年 (即上元三年,西元$762$年) 覺得「至德曆」不好再改曆成「五紀曆」,改曆的結果還有參考「大衍曆」前一個「麟德曆」(西元$666$年 - 西元$728$年)。【唐興縣客館記】寫於上元二年 (西元$761$年),這個年代應該要使用哪個曆我們這裡先不討論有點複雜,似乎應該是「至德曆」(西元$758$年 - 西元$762$年) 但「至德曆」啟用年限短而且之後改曆反而參考更早之前的曆法,在當時或許已知不準而有黑歷史之感,又或許杜甫當時被貶至蜀沒能來得及取得最新「至德曆」的數據。因為要算出這些數字算到剛剛好非常困難,如果數字一樣幾乎可以肯定是照所使用曆法的計算。而根據測試的結果直接透露結論,我們拿大衍曆 (西元$729$年 - 西元$762$?年)來計算吧!

根據【新唐書卷二十八上 志第十八上 曆四上】:
《開元大衍曆》演紀上元閼逢困敦之歲,距開元十二年甲子,積九千六百九十六萬一千七百四十算。

以策實乘積算,曰中積分。盈通法得一,為積日。爻數去之,餘起甲子算外,得天正中氣。凡分為小餘,日為大餘。加三元之策,得次氣。
通法三千四十。
策實百一十一萬三百四十三。
三元之策十五,餘六百六十四,秒七。


上元到開元十二年(西元$724$年)共$96961740$年,而到了上元二年 (西元$761$年) 又過 $37$ 年。通法 $3040$,策實 $1110343$。

需要用到的數字都出現了,詳細的解釋上一篇有介紹,歡迎前往複習,或是直接往下單純欣賞漂亮的數字,既然【唐興縣客館記】最末句寫了「是日辛丑歲秋分」,那來算看看上元二年辛丑年 (西元$761$年) 的秋分 (冬至過後的第$18$個節氣) 是什麼時刻吧!

$\frac{1110343}{3040} = 365.2444 $ 是該曆法一個回歸年的天數。

上元至上元二年 (西元$761$年) 剛過的冬至共有的天數,加上該冬至到秋分的天數

\[ \begin{align*} &= \frac{1110343 \times (96961740+37)}{3040} + \frac{1110343}{3040} \times \frac{18}{24} \\ &= \frac{107660830359511}{3040} + \frac{19986174}{72960} = 35414747102.7198181152 \end{align*} \]

也就是算到上元二年的秋分共有$35414747102.7198181152$天,那除以$60$的餘數中的「大餘」和「小餘」便可以知道那一年的秋分以干支記日是哪一天,也可以知道準確的時刻了!

$ 35414747102.7198181152 \equiv 2.7198181152\ ( mod\ 60)$

小數的部分會用分母為$3040$的分數表示,所以:

$0.7198181152 \times 3040 = 2188.247$

因此算到秋分的餘數是 $2 \frac{2188}{3040}$。

使用小數只是方便計算,當時應該會使用類似分數的計算方式。

以下是現代分數的算式供參考:

曆書中有附上三元之策$15 \frac{664+ \frac{7}{24}}{3040}$,即$\frac{1110343}{3040} \times \frac{1}{24} $ ,欲知轉變過程可看上一篇

$ \frac{1110343 \times (96961740+37)}{3040} + \frac{1110343}{3040} \times \frac{1}{24} \times 18 $

$ = \frac{107660830359511}{3040} + 15 \frac{664+ \frac{7}{24}}{3040} \times 18$

$ = 35414746828 \frac{2391}{3040} +15 \times 18 + \frac{664 \times 18 + \frac{7 \times 18 }{24}}{3040}$

$ = 35414746828 \frac{2391}{3040} +270 + \frac{11952 + \frac{126 }{24}}{3040}$

$ = 35414747098 \frac{2391}{3040} + \frac{11957 \frac{6 }{24}}{3040}$

$ = 35414747098 \frac{2391}{3040} + \frac{3 \times 3040 +2837 + \frac{6 }{24}}{3040}$

$ = 35414747098 \frac{2391}{3040} +3 + \frac{2837 + \frac{6 }{24}}{3040}$

$ = 35414747101 \frac{2391}{3040} + \frac{2837 + \frac{6 }{24}}{3040}$

$ = 35414747101 \frac{5228 + \frac{6 }{24}}{3040}$

$ = 35414747102 \frac{2188 + \frac{6 }{24}}{3040}$

$35414747102 \frac{2188 + \frac{6 }{24}}{3040} \equiv 2 \frac{2188 + \frac{6 }{24}}{3040} ( mod\ 60)$


大餘$2$,小餘$2188$...!?這不就是杜甫記下的內容嗎?

杜老先生你在算秋分點!?大餘$2$是指該日以干支記日是甲子日後兩天,也就是丙寅日。小餘$2188$是指當一天切成$3040$等分時,在$2188$那一時刻。

這個是杜甫自己算的或是不知道哪裡抄來的我們就無法得知了,當時民間拿到的月曆年曆上會不會特別寫這個已經無法考證,但連現代的月曆都不太會寫,知道是哪一天已經很夠了,一般老百姓沒有必要知道秋分點是在什麼時刻啊。

筆者簡單查詢了文獻,古書中還有寫過「大餘小餘」的除了曆法相關書籍之外,暫時只查到宋代李石的大成井記,或是清代施鴻保的閩雜記有提及虞紹祖為重建樓作記亦曾記下,除此之外暫時還沒發現,不過筆者計算的結果李石好像有算錯?李石一生中所有的節氣似乎都不是這樣的大餘小餘?至於後者清代時已採定氣,上述計算方式倒已不適用,比較可能是查資料而來?所以可能一般月曆年曆不會特別標注這個?

這當然不是很難的數學只是四則運算,算術層級而已,但因位數有點多其實有點繁瑣......

筆者原先想筆算試試的,算沒幾秒鐘就覺得為什麼要浪費自己的美好生命在這上面。現代人要算這個也不是真的那麼容易,才沒幾年之前智慧型手機還沒問世時,如果手邊只有陽春型計算機,會因為位數過多而算不出來,靠電腦的幫忙則容易得多,現在則因為手機的計算機app,可能簡單多了。

可是杜甫先生你還真的算對了!?

雖然杜甫得到了正確答案,一個正常人再怎樣也不太會在記下日期的時候刻意這樣寫。今年 (西元$2020$年) 秋分點的時刻根據氣象局網頁是在臺灣時間$9$月$22$日$21$時$31$分,一個再文青的現代人,如果真的在秋分當日寫了篇文章,頂多寫個「寫於秋分」之類的,不會把秋分點的時間記上去吧?阿又不是寫文章的時間點,那是「秋分點」啊,而且要做作到這種程度還要刻意去查閱資料才能知道那準確的時間點,如果有人這樣做真無法想像那個人腦袋在想什麼。

可是一千多年前的詩聖杜甫杜老先生,不知道是自己計算的結果或是心血來潮想到這件事還不知去哪查閱後,就寫上去了?這絕對不可能是杜老先生寫文章的確切時間點,因為$2188$的分母是$3040$,杜老先生寫文章時還準備著一個日常生活中不太可能存在的$3040$等分計時裝置,然後刻意剛好在秋分點的時候寫了這篇文章。不可能的啦。這只是專指秋分點的時刻。

杜先生啊,呃,這樣是不是有點假掰?






後代有許多人幫其作註

朱注漢律厯志推正月朔以月法乘積月盈日法得一名曰積日不盈者名曰小餘小餘三十八以上其月大積日盈六十除之不盈者名曰大餘。姚江黃百家曰日法萬分毎刻百分毎日百刻總得萬分萬分以上為大餘日數也萬分以下為小餘時刻數也杜記蓋謂秋分後二日之二十餘刻耳。又曰漢厯所謂盈六十除之者六十即六十甲子名。旬周又名紀法滿紀者必去之以不滿紀者為主

「朱」注的朱是明末清初的學者朱鶴齡,開頭就寫「漢律曆志」的推算法,雖然推算法除了數據外到唐代沒什麼改變,不過這個引用還是太過時了,平常投稿學術期刊,引用文獻稍微過時了幾年就會被二號審稿者刁,這個甚至過時幾百年了,而且後半段也沒寫什麼就是湊湊字數而已。姚江黃百家(黃宗羲之子),是明末清初的曆法學家,「杜記蓋謂秋分後二日之二十餘刻耳」,沒有啊黃先生,杜甫不是這樣寫的啊裝什麼懂,身為曆法學家,不親自算算也不要隨便寫啊。

乾隆年間楊倫也曾為杜甫著作作注(讀書堂杜工部文註解二卷,pdf檔第$34$頁),楊倫就誠實直白多了「末大餘小餘即觀朱釋亦未明」:大餘小餘朱鶴齡你的注在寫啥還是看不懂啦。

古代人遇到不會的事物會做的事跟現代人一樣,亂掰就對了,資訊流通沒那麼快,隨便講講也不會馬上被發現。愛寫嘛你們,過幾百年後就被發現了吧你看看你。

看了那麼多後代人裝懂又不懂,相較之下杜甫先生輕易地掌握曆算並算出了正確答案,雖然不一定是自己算的,也可能是別人算完再抄答案,但肯抄也暗示著自己了解這些數字的含意。既然已經無法考證誰算的,且讓我們浪漫一下,把計算的榮耀歸於杜甫吧。

亞洲人什麼數學不好,算術最好了!大文豪一千多年前就是這樣了啊……

古代非常厲害的人事物眾多,像是關公的青龍刀、蘇軾的東坡肉。在這長長的清單中,我們又可以多加一條,「杜甫的算術非常厲害」!

關公的青龍刀非常厲害。(圖片來源:網路)

蘇軾的東坡肉非常厲害。(圖片來源:Wikipedia)



作者:阿曆。作於西元$2020$年庚子年秋分前幾天。當然不是秋分點的那一刻。





參考文獻:謝思煒。杜甫詩文中的曆法問題。傅璇琮先生八十壽慶論文集。中華書局。2012年。

沒有留言:

張貼留言