39205 兩千年前的密近簡化計算

終極密碼

遊戲規則:本遊戲為猜密碼的遊戲。密碼為0到100之間的其中1個整數,電腦會提示密碼的所在範圍,玩家必須在6次之內猜到密碼才能過關。
★ 終極密碼為0到100之間 ★
您共有六次機會

1. 引言

遙遠的星空, 周而復始的天體運動, 曆法編撰的需求, 刺激出各種數學分支的萌芽。

中國古代曆法燦爛輝煌, 曆法數學是世界數學史上的奇葩。

1932年, 錢寶琮指出:「古代算學本為天文曆法之附庸。」

然而, 天文曆法本來深奧難解, 文明之初的探索神秘莫測, 書錄時又不免閃爍其詞, 現存史料更是殘缺不全。要想只憑若干數值, 挖掘內在關聯, 揣摩古代算法, 談何容易。

1951年5月, 呂子方「以科學實測為基礎, 以探討三統曆法, 故第一章統母、第二章紀母, 純以實測及古傳數字為出發點, 以求所用基本數字之來源。 如日法八十一, 木星大周年數為一千七百二十八等是也。」何魯為之作序, 盛讚呂子方:「析以新法, 洞中窾要, 尤能明古人之用心, 使二千年前之成績煥然一新, 厥功甚偉。」

此說引起學術界熱議, 但直接用現代術語連分數描述二千年前的數值操作, 充其量涉及存在性, 未涉及構造性, 不免難以迅速獲得公認。

1999年, 王渝生縱論針砭, 深中肯綮

曆法中的絕大多數數據都應該是科學地選取和經過運算, 符合實際天文觀察, 因而是有一定方法的。所謂「調日法」就是如此。 唐一行、北宋周琮、南宋秦九韶、清李銳都對其有不同的解釋, 我們也只能提出一點管見。況且, 算理上的分析並不能代替對歷史事實的確定, 任何結論都必須有史料上的依據。 「例不十, 法不立」, 僅有孤證那是不夠的。

歲月悠悠, 戰亂頻仍, 典著茫茫, 更有豕亥魚魯難免, 直接相關史料的尋找, 幾無可能。

圍繞連分數曆法應用的近百年論爭, 告誡我們仔細估量估量手中依仗的算理分析。

研究古人數值解法, 我們無意求助於現代符號公式展現, 而是既考核現代數學原理(第3.3節), 更關注傳統數學籌算原圖(第2節), 但所提密近簡化, 畢竟只是一廂情願。

不能不感歎, 劉歆刻意湊合歲星歲數, 挂靠周易「乾坤之策」(第3.4節), 這個荒誕之舉, 竟成了本文不可或缺的過硬史料。 前有歲星紀年法12歲小周(第3.1節), 後有五步和超辰的延伸(第3.5節), 劉歆應用密近簡化算法研究木星大周, 來龍去脈, 一清二楚。

密近簡化前期工作中, 劉歆原文隻字未提「相約」, 東漢四分曆、乾象曆、景初曆等現存史料上, 也只是片言隻語(第3.4節)。 然而, 正是算理內在的凝聚力, 支持我們根據景初曆史料, 提出相約算法。

對落下閎日法工作所作探索, 只能聊作立此存照, 因為我們實在無法提供進一步的史料。

2. 密近簡化籌算圖復原

秦九韶早歲侍親中都, 因得訪習於太史, 又嘗從隱君子受數學。1247年「數書九章」治曆演紀題, 系統闡述上元積年算法, 是此前1500年間流傳至今的唯一史料。 所錄1208年開禧曆求乘率籌算原圖, 彌足珍貴。

求乘率術本身是個三階段的綜合體:第一階段輾轉相除, 求出一系列商。第二階段計算序列值。第三階段, 依據某個條件, 關聯某序列值為所需的解。 求解的前提是:入算兩數, 或為線性不定方程兩係數, 或為線性同餘式的係數與模, 或來自傳統數學滿去式。

問題是, 只提供一組 $Q$ 歸數的求乘率籌算圖, 能否提供另外一組 $P$ 歸數。

他山之石, 可以攻玉。 1801年高斯「算術研究」第27節, 列出以 $P$ 序列為原型的序列值公式組, 描述兩組序列。 首項與次項的表達, 特別引起我們的關注:

如果量 $A$、$B$、$C$、$D$、$E$ 等等以下列形式依賴於 $\alpha$、$\beta$、$\gamma$、$\delta$, $\varepsilon$ 等等, 這樣, $$A=\alpha,\quad B=\beta A+1, C=\gamma B+A,\quad D=\delta C+B,\quad E=\varepsilon D+C, \hbox{ 等等。}$$

觀察6136091496和5621200000序列值計算表, 所標字母供全文統一查索:

表一:6136091496與5621200000序列值計算表
$K$ 被除數$=$除數$\times$商$+$餘 商值 $Q$序列 $P$ 序列 比值
令 $Q_0\!=\!0$ 令 $P_0\!=\!1$
1 $6136091496(a)\!=\!$
$5621200000(b)\times 1(q_1)\!+\!514891496(r_1)$
$q_1 1$ 令 $Q_1\!=\!1$ $P_1 \!=\! q_1\!=\!1$
2 $5621200000 \!=\!$
$514891496\times 10(q_2)\!+\!472285040(r_2)$
$q_210$ $Q_2 \!=\! q_2\!=\! 10$ $P_2\!=\!1\!+\!q_2P_1\!=\!11$
3 $514891496 \!=\!$
$472285040\times 1(q_3)\!+\! 42606456 (r_3)$
$q_31$ $Q_3\!=\!1\!+\!q_3Q_2\!=\!11$ $P_3\!=\!P_1\!+\!q_3P_2\!=\!12$ 11/12
4 $472285040\!=\!$
$42606456\times 11(q_4)\!+\!3614024(r_4)$
$q_411$ $Q_4\!=\!Q_2\!+\!q_4Q_3\!=\!131$ $P_4\!=\!P_2\!+\!q_4P_3\!=\!143$
5 $42606456\!=\!$
$3614024\times 11(q_5)\!+\!2852192(r_5)$
$q_511$ $Q_5\!=\!Q_3\!+\!q_5Q_4\!=\!1452$ $P_5\!=\!P_3\!+\!q_5P_4\!=\!1585$
6 $3614024\!=\!$
$2852192\times 1(q_6)\!+\!761832(r_6)$
$q_61$ $Q_6\!=\!Q_4\!+\!q_6Q_5\!=\!1583$ $P_6\!=\!P_4\!+\!q_6P_5\!=\!1728$ 1583/1728

首項 $A$ 取首商($q_1$)還是次商($q_2$), 決定了高斯公式體現 $P$ 序列還是 $Q$ 序列。 取首商 1($q_1$), 首項 $A$ 成為 $P$ 序列的 $P_1$(1), 次項「$B=\beta A+1$」就是 $P_2= 1+q_2P_1 = 11$; 取次商 10($q_2$), 首項 $A$ 成為 $Q$ 序列的 $Q_2$(10), 次項就是 $Q_3=1+q_3Q_2=11$。

天元一與「$B=\beta A+1$」的 1 數理相通, 有助於我們的籌算圖復原工作, 見附錄

先按開禧曆籌算原圖算 $Q$ 序列。 在 $Q$ 圖 1 右列布上 514891496($r_1$) 和 5621200000($b$), 除出次商 10($q_2$)。 相應地, 加天元一的 $Q$ 圖5, 依據 $Q_3=1+q_3Q_2=11$, 算出 $Q$ 歸數 11。

因此, 只要在右列改布 5621200000($b$) 和 6136091496($a$), 能除出首商 1($q_1$), 首圖成為 $P$ 圖1。 相應地, 加天元一的 $P$ 圖5, 會依據 $P_2 = 1+q_2P_1 = 11$, 算出 $P$ 歸數11。 遞次形成的籌算圖組, 算出 $P$ 序列。

籌算術以商與歸數為特徵, 我們稱商歸術。今後只需列出序列值計算表就可以了。

商關聯的兩歸數之比, 是入算兩數的密近簡化比。

密近一詞指前後比值之差微小程度。

例如 6136091496 與 5621200000 兩整數之比, 約為 1.09159815, 作為基準。

商 $q_3$(1) 關聯的 $P_3$(12) 與 $Q_3$(11), 導出 12 與 11 之比, 約 1.09090909, 相差 0.00068906。

商 $q_6$(1) 關聯的 $P_6$(1728) 與 $Q_6$(1583), 導出 1728 與 1583 之比, 約 1.09159823, 與基準值只相差 0.00000008, 密近程度更好。

簡化指位數。 此例兩整數, 算得的二位、四位, 比入算的十位大大縮簡, 有利曆法編排。

我們只是借助 1208 年籌算圖, 構造性地說明, 傳統數學有可能算出兩整數密近簡化比。

如果沒有找到以歲星歲數為代表的大周概念, 我們真不知道怎樣跨越這一千二百多年的漫長時光, 去證明公元之初, 曆法家已經知曉密近簡化算法。

3. 劉歆大周探索

劉歆(約公元前53年到公元23年), 劉向之子, 字子駿, 沛(今屬江蘇)人。 少能詩書, 善屬文。 漢成帝三年(約公元前26年), 奉詔與父一起校書。 劉向去世, 歆繼父業, 任中壘校尉。 漢成帝、哀帝之際(約公元前7年), 改太初曆為三統曆。公元前6年漢哀帝初, 受大司馬王莽推薦, 任侍中太中大夫, 遷騎都尉、 奉車光祿大夫等職。在其父「別錄」的基礎上, 集六藝群書, 著錄「七略」, 為我國歷史上第一部圖書分類目錄。 劉歆創建古文經學派。 公元 1 年王莽秉政後, 劉歆複任中壘校尉以及羲和、京兆尹, 封紅休侯。 公元 9 年王莽篡位後, 被任命為國師。 後怨王莽殺其三子, 圖謀誅殺王莽, 事泄自殺。

劉歆在政壇一生浮沉, 並不成功, 在學術領域, 毀譽參半, 在天文曆法數學, 多有建樹。

值得一提的是, 劉歆曾主持度量衡制度改革, 監製一批度量衡標準器。 以故宮博物院現存「律嘉量斛」, 最為有名。 學者們相信, 劉徽、祖沖之在圓周率計算上有重大成就, 可能與 「律嘉量斛」的研究有關。 祖沖之繼承和發展了劉徽割圓術的工作, 求得盈數三丈一尺四寸一分五厘九毫二秒七忽和肭數三丈一尺四寸一分五厘九毫二秒六忽的圓周率值。

3.1. 歲星紀年

春秋戰國諸侯割據, 各以即位年次紀年。例如, 公元前 700 年這一年, 在一地稱周平王元年, 到了另一地, 稱秦襄公八年, 造成人們交往諸多不便。

木星視運行一周天約12年。 古人把周天劃分成12個特定星空區域, 稱十二星次, 取名星紀、玄枵 (xiāo)、娵 (jū) 訾 (諏zōu 訾)、 降婁、大樑、實沈 (chén)、鶉首、鶉火、鶉尾、壽星、大火、析木。 木星所在星次可以紀年, 故稱歲星。 一歲一星次的歲星紀年具有極大的優越性。 「左傳」、「國語」等書中, 常常見到「歲在星紀」、「歲在鶉火」等等字樣。

古人目測日月五星, 東升西落, 周而復始, 以滿天星斗為背景。 目測行星、背景點之間的視相交、視超越, 最容易也最可靠。

天體與背景點從初次相交到再次相交, 經歷一周天時間為恒星周期。 以日出時歲星現於東方地平線, 作為歲星與太陽的視相交。 從初次相交到再次相交的時間段, 為會合周期。

3.2. 三交點與雙交點

「淮南子 $\cdot$ 天文訓」描述歲星:「十二歲而行二十八宿。 日行十二分度之一, 歲行三十度十六分度之七, 十二歲而周」。 古四分曆一年是 365$\dfrac 14$ 日。 歲星日速 $\dfrac 1{12}$ 度/日, 1年行 $\dfrac 1{12}$ 度/日 $\times 365\dfrac14$ 日= $30\dfrac 7{16}$ 度。 12年行 $30\dfrac 7{16}$ 度/年 $\times 12$ 年= $365\dfrac 14$ 度, 一圈一周天, 占二十八宿。

自同一視點出發的歲星和太陽, 「並而行天, 遲疾留逆, 互相逮及」(參見3.4節), 各自整周天圈數不同, 可能有多個超越點, 最終會於此點, 用星空某背景點所標誌。

我們杜撰歲星、太陽、背景點的三交點一詞, 以界定這12年的總時段。

時鐘面上的零點就是三交點。 時針 12 小時 1 圈, 分針 12 小時 12 圈, 因圈數之差, 分針超越時針 $12 - 1 = 11$ 次。 形成的 11 個雙交點, 把 12 小時隔成 11 段, 每段長 $1\dfrac 1{11}$ 小時。

12 年間太陽 12 周天, 超越歲星 $12-1=11$ 次。 11 個雙交點隔出 11 個會合周期。

三統曆歲實是 $\dfrac{562120}{1539}$, 從 12 年立即算出歲星會合周期 $\dfrac{562120\times 12}{1539\times 11}\approx 398.4547$ 日。

一般來說, 界定兩個天體各自周天圈數的三交點, 界定一個多會合周期的集合。 由雙交點所界定的會合周期, 長度等於總時段除以兩周天圈數之差。

不得不指出, 一旦實施密近簡化, 嚴格意義上的三交點, 因偏移而不復存在。

3.3. 數理潛力一例

華羅庚揭示圈數之比研究蘊含的數理潛力, 以人造行星、地球各繞太陽為例。

假定, 人造行星繞太陽一圈 450 天, 地球繞太陽一圈(注意, 是為1年) 360天。 因 450 和 360 最小公倍數是 1800, 或 $\dfrac{450}{360} = \dfrac 54$。 地球走 5 圈(5年)時人造行星走 4 圈, 兩者接近。

把地球繞太陽一圈(是為 1 年)改成 $365\dfrac 14$ 天。 以 $\dfrac 14$ 天做單位, 人造行星、地球繞太陽一圈, 各為 1800 和 1461 單位。 輾轉相除得一組商 1、 4、 3、 4、 2、 1、 2。 華羅庚排出連分數 $1+\dfrac 14+\dfrac 13+\dfrac 14+\dfrac 12+\dfrac 11+\dfrac 12$, 逐次刪除尾部, 算出漸近分數序列: 1, $1+\dfrac 14 = \dfrac 54$, $1+\dfrac 14+\dfrac 13 = \dfrac{16}{13}$, $1+\dfrac 14+\dfrac 13+\dfrac 14 = \dfrac{69}{56}$, $1+\dfrac 14+\dfrac 13+\dfrac 14+\dfrac 12 = \dfrac{154}{125}$, $\cdots$。 $\dfrac 54$ 是 5 年後人造行星 4 圈, 兩者 接近, $\dfrac{16}{13}$ 說明 16 年後人造行星 13 圈接近些, $\dfrac{69}{56}$ 說明 69 年後人造行星 56 圈還要接近些, $\dfrac{154}{125}$ 說明接近程度更好。

要注意一個細節, 各個分母屬於同一序列, 較大數值(如125)並不是前面較小值(如 56、 13、 4) 的倍數, 倍數關係一般很難碰到, 除非刻意湊合。

3.4. 一般思路與刻意湊合

地球繞太陽一圈是為一年。 相對地, 太陽視運動一周天一圈, 也是一年。

劉歆利用歲星單會合周期(一見), 「相約」後應用率, 導出多會合周期(多見數)的集合, 總年數就稱歲星歲數。

劉歆思路與兩周天數之比思路(參見3.3節), 是相通的。

我們不妨試算一下: $6136091496$ (太陽周天) $- 5621200000$ (歲星與日會合週期) $= 514891496$ (歲星周天)。 以這兩個周天數入密近簡化術, 直接算出 1728 歲, 145 周天。 再算 $1728- 145 = 1583$, 就是見數。從數學思維的現代角度看, 後者要自然順暢得多。

囿於史料, 我們無法知曉劉歆推演的原始思路。

表2:6136091496與514891496序列值計算表
$K$ 被除數$=$除數$\times$商$+$餘 商值 $Q$序列 $P$ 序列 比值
令 $Q_0\!=\!0$ 令 $P_0\!=\!1$
1 $6136091496\!=\!$
$514891496\times 11\!+\!472285040$
$q_111$ 令 $Q_1\!=\!1$ $P_1 \!=\! q_1\!=\!11$
2 $514891496\!=\!$
$472285040\times 1\!+\!42606456$
$q_21$ $Q_2 \!=\! q_2\!=\! 1$ $P_2\!=\!1\!+\!q_2P_1\!=\!1\!+\!11\!=\!12$ 1/12
3 $472285040\!=\!$
$42606456\times 11\!+\!3614024$
$q_311$ $Q_3\!=\!1\!+\!q_3Q_2\!=\!1\!+\!11\!=\!12$ $P_3\!=\!P_1\!+\!q_3P_2\!=\!11\!+\!132\!=\!143$
4 $42606456\!=\!$
$3614024\times 11\!+\!2852192$
$q_411$ $Q_4\!=\! Q_2\!+\!q_4Q_3\!=\!1\!+\!132\!=\!133$ $P_4\!=\!P_2\!+\!q_4P_3\!=\!12\!+\!1573\!=\!1585$
5 $3614024\!=\!$
$2852192\times 1\!+\!761832$
$q_51$ $Q_5\!=\!Q_3\!+\!q_5Q_4\!=\!12\!+\!133\!=\!145$ $P_5\!=\!P_3\!+\!q_5P_4\!=\!143\!+\!1585\!=\!1728$ 145/1728

東漢四分曆、乾象曆、景初曆等都緊隨三統曆, 給出類似的術語和數值。

表3:歲星的大周和見數
三統曆 東漢四分曆 乾象曆 景初曆
歲星歲數 歲數1728 日率4725 日率7341 合終歲數1255
會合周期個數 見數1583 周率4327 周率6722 合終合數1147

「相約」一詞始見於公元85年東漢四分曆:「五星之數生也, 各記於日, 與周天度相約而為率 $\cdots$ 以率去日率, 余以乘周天, 如日度法為度之餘也。」

公元 223 年乾象曆也有:「各以終日與天度相約, 為周率、日率。 $\cdots$ 五星度數、度餘」。

公元 237 年楊偉的景初曆推五星術, 分四步敍述「相約」, 原文為:

五星者, 木曰歲星, 火曰熒惑星, 土曰填星, 金曰太白星, 水曰辰星。 凡五星之行, 有遲有疾, 有留有逆。曩自開闢, 清濁始分, 則日月五星聚於星紀。 發自星紀, 並而行天, 遲疾留逆, 互相逮及。 星與日會, 同宿共度, 則謂之合。從合至合之日, 則謂之終。 各以一終之日與一歲之日通分相約, 終而率之, 歲數歲則謂之合終歲數, 歲終則謂之合終合數。 二率既定, 則法數生焉。 $\cdots$ 各以合數減歲數, 餘以周天乘之, 如日度法而一, 所得則行星數度也, 餘則度餘。

沿用楊偉原文認識一般思路, 直接加入劉歆術語數值, 能清楚顯示, 此為劉歆所創。

一、會合週期

從「日月五星聚於星紀」的上元起, 觀察歲星與太陽「同宿共度」。 歲星日出時於東方地平線重現, 「從合至合之日」界定會合週期, 楊偉稱一終, 劉歆稱一見。

二、相約

景初曆「各以一終之日與一歲之日通分相約, 終而率之」, 東漢四分曆、 乾象曆用詞略有不同。 各曆術語略有不同, 在傳統曆法史上, 司空見慣。

三統曆太陽一周天的「一歲之日」$\dfrac{562120}{1539}$ 日。 「一終之日」$398\dfrac{5163102}{7308711}$ 日。 歲星與太陽約 $398\dfrac{7064}{10000}$ 日重合一次。 此值精確到萬分之一, 再增加精度, 一般不影響後續分析。

「通分相約, 終而率之」, 歲星與太陽每日重合 $\dfrac 1 {398\frac{7064}{10000}}$ 次。平攤到每一日, 太陽一日視角差一度, 字面是每日, 背景是每度。

寫年換日, 擴大 $\dfrac{562120}{1539}$ 倍。 歲星與太陽每年重合 $\dfrac{\frac{562120}{1539}}{398\frac{7064}{10000}}=\dfrac{ 5621200000}{6136091496}$ 次。 平攤到每一年, 字面是每年, 背景是每周天。

再擴大, 太陽經過6136091496周天(年), 歲星與太陽重合5621200000次。

三、歲星紀年到太極上元

構建上元積年和曆法編排的大周數值, 大小要適當, 刺激密近簡化算法的誕生。

利用 $\dfrac{5621200000}{6136091496}$ 簡化成 $\dfrac{1583}{1728}$, 兩者相差 0.00000007, 具有相當好的密近程度。 此分數與表 1 內各次除式所形成分數, 分子分母顛倒, 密近簡化性質相同。

我們不能不歎息, 依據高斯「算術研究」原理, 仿照開禧曆籌算圖所復原的商歸術, 如果成立, 竟能窺視到二千年前劉歆的奇遇: 後值 1728 是前值 12 的 144 倍。

編三統曆的最高宗旨, 就是體現天人感應, 受命於天。 劉歆自信歲星運動是萬世不移的天象基準, 深信其推算的精確。以一條明晰的主線, 構思三統曆, 分五步走。

(1) 古傳歲星12年11見。據三統曆歲實 $\dfrac{562120}{1539}$, 算出 $\dfrac{562120\times 12}{1539\times 11}\approx 398\dfrac{4547}{10000}$ 日。 與「開元占經」所載戰國時期甘德測得的400日、 漢代馬王堆漢墓帛書「五星占」所載 395.44 日相比較, 三統曆歲星會合週期值更接近於現代值 398.88 日。

(2) 用密近簡化法調試, 略微改動 $398\dfrac{4547}{10000}$ 成 $398\dfrac{7064}{10000}$ 日, 見到 1728 和 1583。 把 1728 年認作「合終歲數」(劉歆稱歲星歲數), 1583 次認作「合終合數」(劉歆稱見數)。 「二率既定, 則法數生焉」, 成為曆法各值的基礎。

(3) 紀母中明確144是坤(巛)策:「木金相乘為十二, 是為歲星小周。小周乘巛(坤字古體)策, 為千七百二十八, 是為歲星歲數。」

(4) 總論中以特殊推一般:「天以一生水, 地以二生火, 天以三生木, 地以四生金, 天以五生土。 五勝相乘, 以生小周, 以乘乾坤之策, 而成大周」。 五勝相乘, 得五星小周。小周乘上「周易 $\cdot$ 系辭」的「乾之策二百一十有六, 坤之策百四十有四」, 得到大周。

(5) 總論中, 以「五星會終」138240年, 作為太極上元 23639040 年的基礎之一。 138240 年源於木星 1728 年的 80 大周、火星 13824 年的 10 大周、 土星 4320 年的 32 大周、金星 3456 年的 40 大周和水星 9216 年的 15 大周。

查「漢書 $\cdot$ 律曆志」所載三統曆法, 共分七章:一統母, 二紀母, 三五步, 四統術, 五紀術, 六歲術, 七世經。 統母、紀母為立法之源, 五步乃五星會合週期動態段研究, 統術、紀術、歲術是推算日月五星及歲星所在之次, 而世經為年代學篇章, 其中少數用殷曆、周曆外, 大部分用三統曆術推算其前史料中的歲星紀年和朔旦冬至, 考古之紀年, 以證其術。

我們認為, 這個結構與三統曆主線不無關係。

四、周天數

「相約」後, 才以「合數減歲數」。歲數指太陽周天數1728, 合數指會合周期個數1583, 用減法求出歲星的周天數145。

所說「以周天乘之」, 乘的是周天值。

3.5. 超辰和日行率

劉歆導出三統曆的兩個支柱性概念 : 日行率和超辰。

歲星 1728 年走 145 周天, 平均分攤到年, 每年 $\dfrac{145}{1728}$ 周天;平均分攤到日, 每日 $\dfrac{145}{1728}$ 度, 成為歲星日行率。

1728年有12個144年, 1周天有12星次。 歲星1728年走145周天 $145\times 12$ 星次, 平均分攤到144年, 歲星行145次, 比144年古傳位置144次, 超一次, 成為歲星超辰。

如果平均分攤到周天, 則是 11.917 年一周天。

現代天文學上, 木星約 11.8622 年一周天。 我們不妨依超辰概念, 計算超出一星次所需年 數。 設經過 $x$ 年, 視位置 $\dfrac{x\ \hbox{周天}}{11.8622\hbox{歲}}$ 比理想位置 $\dfrac{x\hbox{周天}}{12\hbox{歲}}$, 超1次:$\dfrac{x\ \hbox{周天}}{11.8622\hbox{歲}}-\dfrac{x\ \hbox{周天}}{12\hbox{歲}}= \dfrac{1\ \hbox{周天}}{12\hbox{歲}}$, 整理得, $12x = 11.8622(x +1)$, $0.1378x = 11.8622$, $x\approx 86.0827$ 歲。 由此可算出 經 86 歲或 87 歲, 超出一次。 祖沖之「駁議」術文曰 : 歲星「行天七匝, 輒超一位」, 說是 84 年超一辰。 元嘉曆何承天用 86 年超一辰法。大衍曆用 85 年超一辰法。

3.6. 五步

站在地球上看, 木星視運動有三種形式:一是地球的自轉所引起的周日運動, 二是地球繞日和木星繞日的合成恒星背景間的運動, 三是木星相對於太陽的位置變化。 古人把木星與太陽的會合周期, 分成晨始見(早晨出現在東方)、順行(從西向東運動)、 留、逆行、留、順行、伏(沒入日光而不可見)、合(與太陽位置重合)、晨始見 $\cdots$ 等周而復始的運動。

五步中列出各動態段數值, 可列成五步動態表:

表4:三統曆歲星動態表
段名 晨始見後順 始留 逆行 順行 一見
每段日數($A$) 121 25 84 $24\frac{3}{7308711}$ $111\frac{1828362}{7308711}$ $33\frac{3334737}{7308711}$ $398\frac{5163102}{7308711}$
每日行度($B$) $\frac2{11}$ 0 $-\frac 17$ 0 $\frac 2{11}$ 不盈 $\frac1{11}$, 應為不盈$\frac 1{10}$ 日行度 $\frac{145}{1728}$
每段行度($A\!\times\! B$) [22] [0] [-22] [0] $[20\frac{1661286}{7308711}]$ $3\frac{1673451}{7308711}$ 共行 $33\frac{3334737}{7308711}$

公分母 7308711 最令人困惑, 因 7308711 分之一天即今 0.011821 秒, 精度驚人。

計時精度受到科技水準的制約, 儘管一天分百刻的計時制, 在周以前就出現了。 「續漢書 $\cdot$ 律曆志」中所描述「孔壺為漏, 浮箭為刻, 下漏數刻, 以考中星」, 在漢代有了很大的發展。 漢武帝時期(公元前 140 到前 87 年)發明的浮箭漏, 替代了單壺泄水型沉箭漏。 最遲在東漢初(公元 1 世紀初), 出現了二級補償式浮箭漏。 東漢以後, 日誤差大多在 1 分鐘以內, 最好的可達 20 秒左右

歐洲的機械鐘, 14 世紀時的日誤差最大為 2 小時, 最小為 5 到 10 分鐘, 一般為 $\pm 20$ 分鐘。 公元 1715 年英國人 George Graham 把直進式擒縱機構用到機械擺鐘上, 計時精確度才達到日誤差幾秒的數量級。

綜合觀察, 7308711 是歲星見數 1583 與元數 4617 之積, 涉及歲星歲數 1728 歲。 分母取值似乎相對機動, 因為沒有適當的分子值配合, 分母取值不直接決定分數之值。

各段日數欄, 為示其精確, 竟列出「複留, 二十四日三分(三分即今 0.035463 秒)而旋」一值。 把數值人為調整得如此嚴密, 使得歲星周期的推算完全以精確計算的面目出現, 正是傳統曆法整數論的特色。

從原文來看, 五步各項相加得總日數 $398\dfrac{5163102}{7308711}$、 總行度 $33\dfrac{3334737}{7308711}$ 度, 最後約簡得日行率 $\dfrac{145}{1728}$ 度。 我們以為, 真正的過程是先算出日行率 $\dfrac{145}{1728}$ 度, 再分出五步。

五步與超辰有力地證明, 劉歆掌握了密近簡化算法!

4. 落下閎日法探索

4.1. 太初曆與三統曆

三統曆與太初曆的淵源關係, 有助於揭示密近簡化法的來歷。

公元前104年的太初曆, 是漢武帝時代曆法改革的重大成果。 現存相關史料, 只有三項。

司馬遷為落下閎的同時代人, 在「史記$\cdot$曆書」中只提到 : 「至今上即位, 招致方士唐都, 分其天部; 而巴落下閎運算轉曆。」

司馬遷用「曆術甲子篇」形式, 以 76 年一張表, 表明了對歲實 $365\dfrac 14$ 日, 朔望月 $29\dfrac{499}{940}$ 日的見解, 隻字不提落下閎的日法 81。

此外, 「漢書 $\cdot$ 天文志」給出各年歲星晨出東方時所在二十八宿的名稱。

公元前7年, 劉歆根據太初曆改編的三統曆, 是我國第一部有完整術文傳世的曆法。 劉歆是位開拓性極強的學者, 所進行的一系列改造, 無論是創舉還是敗筆, 都對後世曆法產生了重要的影響。

今人得知三統曆詳情, 全憑班固傳述之功。 公元 1 世紀班固根據其父班彪收集的材料, 整理撰寫「漢書」。 班固這樣介紹劉歆:「至元始中, 王莽秉政, 欲耀名譽, 征天下通知鐘律者百餘人, 使羲和劉歆等典領條奏, 言之最詳。故刪其偽辭, 取正義著于篇。」 並極力推崇其「推法密要」:「至孝成世, 劉向總六曆, 列是非, 作五紀論。 向子歆, 究其微眇, 作三統曆及譜, 以說春秋, 推法密要, 故述焉。」

兩千年來, 多少學者孜孜不倦, 從歷史學、現代天文學、考古學、數學、考據學等多個學術角度, 多少宏著, 反復耕耘這些史料。 人們一直把太初曆與三統曆混為一談。 例如, 賈逵(174$\sim$228)論曆 第一句就是:「自太初元年始用三統曆, 施行百有餘年。」 太初曆、三統曆日法都是81, 都以太初元年前十一月甲子朔旦冬至為曆元。

幸賴近年來學者們的深入研究, 才知曉其間的區別

表5:太初曆、三統曆區別
太初曆 三統曆
二十八宿 用甘氏體系, 僅有個別調整 用石氏體系
歲星周期 12年1周天 144年行145次
曆元 近距曆元 太極上元
基本周期 1朔望月 $29\frac{43}{81}$ 日, 1回歸年 $365\frac{385}{1539}$ 日 完全襲用太初曆, 但又暗中提出新見
冬至點 在建星或牽牛前五度 在牽牛初, 又承認在牽牛前四度五分

五條中三條屬於曆法計算, 歲星周期、曆元和基本周期, 都涉及到商歸術。

公認, 劉歆提出太極上元概念, 第一個實際上算出太初曆、三統曆上元積年值。 所用算法與求乘率術直接相關, 當另文討論。

4.2. 是源還是流

中國古代十進小數的運算發展較遲, 天文學上各種單位的奇零部分, 通常用分數來表示。

日法是中國曆法的核心。沒有一個經得起統籌考慮的日法值, 就無法恰當地取捨實測數據, 也就無法以簡便的數值解法, 返求上元積年。 早期古六曆和三統曆的日法, 專指朔望月奇零部分的分母 940 和 81。 後漢四分曆, 才把歲實的分母 4 稱為日法。

黃帝、顓頊、夏、殷、周、魯, 合稱古六曆, 原始術文早已遺失, 至今只留存一些片斷數據。 學者們公認, 古六曆的歲實、朔策、閏法三要素是長期摸索、反覆推求而得的。 把盡可能準確的天象觀察和數學方法, 有機地結合起來, 犧牲步朔的一點點精度, 折中協調年、 月、日長度, 所推出誤差約 661 秒的回歸年長度 $365\dfrac 14$日, 也可能為當時粗略的圭表測量所證實。 使用近似的置閏規則 19 年 7 閏。因日分母 4, $4\times 19=76$ 年。 這 76 年含 $365\dfrac 14\times 76 =27759$ 日, 含朔望月 940 個, 其中平常月 $12\times 76=912$ 個, 閏月 $7\times 4=28$ 個。 相除得 $\dfrac{27759}{940}$ 日 $=29\dfrac{499}{940}$ 日, 稱為朔策, 誤差約23秒。

調日法研究通過運算, 選取符合天文觀察的日法。 最早見周琮的「明天曆」:

宋世何承天更以四十九分之二十六為強率, 十七分之九為弱率, 於強弱之際以求日法。 承天日法七百五十二, 得一十五強一弱。 自後治曆者, 莫不因承天法、累強弱之數, 皆不悟日月有自然合會之數。

調日法的考證與解釋, 是有清以來曆法史、數學史上的重大課題, 前輩們成果累累。 但可用的研究手段, 似乎不多。某項數據是源是流, 難以釐清。

朱文鑫探索三統曆、古六曆數值的密近, 稱「考殷曆朔餘九百四十分日之四百九十九則大於二分之一。 三統曆欲化繁為簡, 若命為四十九分之二十六, 則小於殷曆朔餘。 但必須在二者之間, 乃以二率相加, 合為八十一分之四十三, 則最為密近。」

朱文鑫從兩個方面應用何承天調日法, 一方面是數據弱率 $\dfrac{17}{32}$ 和強率 $\dfrac{26}{49}$, 另一方面是數學處理「二率相加」, $\dfrac{17+26}{32+49} = \dfrac{43}{81}$, 判斷 $\dfrac{43}{81}$ (作流) 「最為密近」於(作源)古六曆的 $\dfrac{499}{940}$。

陳久金探索何承天調日法數值。認為古時用平朔, 大小月相間, 一般在 16、 17 個月內加一連大月, 何承天取其多者為算, 即以在17個月內加一連大月計, 其朔望月長度應為 $\dfrac{16\times 29.5+30}{17} = 29\dfrac{9}{17}$ 日, 這是弱率的由來。 太初曆取朔望月長度為 $29\dfrac{43}{81}$ 日, 已被公認為太強, 於是何承天將它與弱率, 依上式作了一次調整, $\dfrac{9+43}{17+81} = \dfrac{26}{49}$, 這是強率的由來。

陳久金的思路是:弱率值是利用古傳的連大月而來。太初曆朔望月值 $\dfrac{43}{81}$ 太強。 假定何承天知曉此事, 以弱率(作源)用數學處理 $\dfrac{9+43}{17+81}$ (作源), 產生強率值(作流)。

我們贊成呂子方對落下閎日法 81 來源的推測。據司馬遷「史記 $\cdot$ 曆書」 所提:「巴落下閎 運算轉曆」, 可以假定落下閎涉及密近簡化術, 以古六曆 $\dfrac{499}{940}$ 作源, 試算出太初曆的 $\dfrac{43}{81}$。

序列值算表如下:

表6:940和499序列值計算表
$K$ 被除數$=$除數$\times$ 商$+$餘 $Q$序列 $P$序列 比值
令 $Q_0=0$ 令 $P_0=1$
1 $940=499\times 1+441$ $q_11$ 令 $Q_1=1$ $P_1 = q_1=1$ 1
2 $499=441\times 1+58$ $q_2 1$ $Q_2 = q_2= 1$ $P_2=1+q_2P_1=2$ 1/2
3 $441=58\times 7+35$ $q_3 7$ $Q_3=1+q_3Q_2=8$ $P_3=P_1+q_3P_2=15$ 8/15
4 $58=35\times 1+23$ $q_4 1$ $Q_4= Q_2+q_4Q_3=9$ $P_4= P_2+q_4P_3=17$ 9/17
5 $35=23\times 1+12$ $q_51$ $Q_5= Q_3+q_5Q_4=17$ $P_5=P_3+q_5P_4=32$ 17/32
6 $23=12\times 1+11$ $q_61$ $Q_6= Q_4+q_6Q_5=26$ $P_6=P_4+q_6P_5=49$ 26/49
<7 $12=11\times 1+1$ (自然餘數) $q_71$ $Q_7= Q_5+q_7Q_6=43$ $P_7=P_5+q_7P_6=81$ 43/81

表中第7次商($q_7$) 1 導出 43 與 81, 分母值 81 為 3 的倍數。 如「漢書」所載「閎運算轉曆, 其法以律起曆」, 當時人們對音律的認識, 主要是三分損益律。 太初曆、三統曆的曆法數值, 基本上都與 3 有關。

表中第4次除法商 1 導出 9 與 17 之比, 第 6 次除法商 1 導出 26 與 49 之比。 $\dfrac 9{17}$ 和 $\dfrac{26}{49}$ 兩值引起我們極大的興趣。 何承天的弱率和強率也是古六曆 $\dfrac{499}{940}$ 的流。

再次強調, 圍繞太初曆日法 81, 我們無法提供進一步的史料, 但判斷落下閎知曉某種初始形態的密近簡化術, 應該是有把握的。

4.3. 緬懷落下閎

漢武帝為改曆, 下過七次詔書。第一次是接到公孫卿等人「宜改正朔」 的上言, 下詔御史大夫兒寬, 與博士們共議此事。 第二次是接到兒寬等人都贊同改曆後, 下詔給御史, 決定改曆。 第三次是詔公孫卿等人, 讓他們具體處理改曆的事務。 第四次是接到大典星射姓等人奏報「不能為算」之後, 另選多人編算新曆。 第五次是下詔給司馬遷, 讓他用鄧平所造八十一分律曆。 第六次詔, 使人校驗律曆。 第七次詔, 等校者太監淳于陵渠回奏, 稱鄧平曆法最密後, 詔定用鄧平法, 且給鄧平加官。

落下閎(前156年 $\sim$ 前87年), 字長公, 巴郡閬中人。 兩千年來所存史料, 寥寥無幾。

落下閎出場於第四次詔書之後。 「乃選治曆鄧平及長樂司馬可、酒泉候宜君、侍郎尊及與民間治曆者, 凡二十余人, 方士唐都、 巴郡落下閎與焉。都分天部, 而閎運算轉曆。」 落下閎「以律起曆」, 提出「律容一龠, 積八十一寸, 則一日之分也」。 「於是, 皆觀新星度、日月行, 更以算推, 如閎、平法。」 鄧平、落下閎定的朔望月長度是「一月之日二十九日八十一分日之四十三」。 再根 據19年7閏規律, 推算出太初曆歲實 $365\dfrac{385}{1539}$ 日。

落下閎退隱於第七次詔書後。 本來, 改曆大事, 功成名就, 鄧平加官, 順理成章。 落下閎卻「拜侍中, 辭不受」, 留下一言 : 「後八百歲, 此曆差一日, 當有聖人定之。」

我們深深緬懷落下閎, 這位力挽狂瀾、功不可沒, 又急流勇退的民間天文學家。

5. 小結

連分數理論是把雙刃劍, 在帶給中國曆法研究極大便利的同時, 也可能掩蓋原始思路。

公元前 104 年左右, 落下閎涉及密近簡化術。 公元前 7 年左右, 劉歆鑽研密近簡化術, 發展出求乘率術。 我們也才理解, 班固極力推崇劉歆「推法密要」的真正用意。

為解釋相關數學原理, 我們不得不杜撰三交點一詞(參見3.2節), 卻無法直接解釋劉歆「相 約」 之法(參見3.4節)。 囿於史料, 我們無法想像, 公元前7年的劉歆, 借助歲星客觀運動為參考, 推演密近簡化的原始思路。 我們更無法想像, 公元前 104 年的落下閎, 怎樣利用算術計算 (參見4.2節) 結果 $\dfrac{499}{940}$。

今天的線性不定方程、線性同餘式和連分數, 是三棵枝繁葉茂的參天大樹。 就在這塊肥沃的土壤上, 兩千多年前的落下閎、 劉歆辛勤耕耘, 開創了中華文明千年曆法的輝煌, 在人類文明史上, 寫下了濃重的一筆。

附錄

我們列出復原探索圖, 頂行的除法和相應序列公式, 來自序列表同一行, 下附四幅相應籌算圖。 前組商(如$q_3$(11))引導的歸數, 在後組籌算圖中($Q_3$(11)在$Q$圖5,~$P_3$(12)在$P$圖7)。

表7:商歸術籌算圖的復原探索
$6136091496(a)\!\!=\!\!5621200000(b)\!\!\times\!\! 1(q_1)\!\!+\!\!514891496(r_1)$
$Q_1=1$($Q$ 圖 1), $P_1 = q_1=1$ ($P$圖 3)
$5621200000 \!=\! 514891496\!\times\! 10(q_2)+472285040(r_2)$
$Q_2\!=\!q_2\!=\!10$($Q$ 圖 3), $P_2 \!=\! 1\!+\!q_2P_1\!=\!11$ ($P$ 圖 5)
$514891496 \!=\! 472285040$
$\!\times\! 1(q_3)\!+\! 42606456 (r_3)$
Q

1
($Q_1$)1  ($r_1$)514891496
($Q_0$)0  ($b$)5621200000
($q_2$)10
Q

2
1        514891496
0  ($r_2$)472285040
10
Q

3
($q_3$)1
1   514891496
($Q_2$)10   472285040
P

1
($P_0$)1 &($b$)5621200000
0 &($a$)6136091496
($q_1$)10
P

2
1      5621200000
0  ($r_1$)514891496
1
P

3
($q_2$)10
1 5621200000
($P_1$)1  514891496
P

4
10
1  ($r_2$)472285040
1        514891496
P

5
($P_2$)11  472285040
1 514891496
$(q_3$)1

$Q_3=1+q_3Q_2=11$ ($Q$ 圖 5)
$P_3=P_1+q_3P_2=12$ ($P$ 圖 7)
$472285040=42606456\times 11(q_4)+3614024(r_4)$
$Q_4\!\!=\!\!Q_2\!\!+\!\!q_4Q_3=\!131$($Q$ 圖 7), $P_4 \!\!=\!\! P_2\!\!+\!\!q_4P_3\!\!=\!\!143$ ($P$ 圖 9)
$42606456=3614024\times 11(q_5)$
$\!+\! 2852192 (r_3)$
Q

4
1
1   ($r_3$)42606456
10       472285040
Q

5
$(Q_3)$11    42606456
        10  472285040
$(q_4)$11
Q

6
11    472285040
10  ($r_4$)3614024
11
Q

7
$(q_5)$11
11 42606456
$(Q_4)131$   3614024
P

6
11      472285040
1  ($r_3$)42606456
1
P

7
$(q_4)$11
11  472285040
$(P_3)$12    42606456
P

8
11
11  $(r_4)$3614024
12     472285040
P

9
$(P_4)$143    3614024
12  42606456
$(q_5)$11

$Q_5=Q_3+q_5Q_4=1452$ ($Q$ 圖 9)
$P_5=P_3+q_5P_4=1585$ ($P$ 圖 11)
$3614024=2852192\times 1(q_6)+761832(r_6)$
$Q_6\!\!=\!\!Q_4\!\!+\!\!q_6Q_5=\!1583$($Q$ 圖 11), $P_6 \!\!=\!\! P_4\!\!+\!\!q_6P_5\!\!=\!\!1728$ ($P$ 圖 13)
$2852192=761832\times 3(q_7)$
$\!+\! 566696 (r_7)$
Q

8
11
11   ($r_5$)2852192
131         3614024
Q

9
$(Q_5)$1452  2852192
131  3614024
$(q_6)$1
Q

10
1452      2852192
131  ($r_6$)761832
1
Q

11
$(q_3)$3
1452  2852192
$(Q_6)$1583    761832
P

10
143      42606456
12  ($r_5$)2852192
11
P

11
$(q_6)$1
12  3614024
$(P_5)$1585  2852192
P

12
1
12  $(r_6)$761832
1585       2852192
P

13
$(P_6)$1728    761832
1585  2852192
$(q_7)$3

參考文獻

錢寶琮, 中國算學史凡例, 「李儼錢寶琮科學史全集」, 第1卷, 遼寧教育出版社, 1998, p.169。 呂子方, 「中國科學技術史論文集」上, 中國科學院成都分院自然辨證法研究室呂子方遺著整理研究組整理, 四川人民出版社, 1983。 王渝生, 「算學志」, 「中華文化通志」, 上海人民出版社, 1999.1。 「中國算學史」, 上海人民出版社, 2006, p.291。 Gauss, Karl Friedrich. 1801. Disquistiones Arithmeticae. Libsiae: Gerh Fleischer. 王翼勳, 傳統數學的千年等數和乘率之謎, 「數學傳播」, 36卷4期, 2012年12月, pp.69-82。 梅榮照, 劉徽與祖沖之父子, 科學史集刊, 地質出版社, 1984, pp.105-129。 華羅庚, 「從祖沖之的圓周率談起」, 人民教育出版社, 1962。 「晉書 $\cdot$ 律曆志下」, 「歷代天文律曆等志彙編」(五), pp.1634-1644。 「續漢書 $\cdot$ 律曆志」, 「歷代天文律曆等志彙編」(五), pp.1419-1426。 張培瑜, 陳美東, 薄樹人, 胡鐵珠, 「中國古代曆法」, 科學技術出版社, 2008.3, p.259。 華同旭, 中國漏刻史話, 「中國計量」, 2003年第8期, pp.37-40。 李東生, 論我國古代五星會合周期和恒星周期的測定, 「自然科學史研究」, 6卷3期, 1987, pp.224-237。 「續漢書 $\cdot$ 律曆志」, 「歷代天文律曆等志彙編」(五), 中華書局本, p.1479。 「續漢書 $\cdot$ 律曆志」, 「歷代天文律曆等志彙編」(五), 中華書局本, pp.1419-1426。 薄樹人, 試探三統曆和太初曆的不同點, 「自然科學史研究」, 第2卷第2期(1983), pp.133-138。 陳美東, 「古曆新探」, 遼寧教育出版社, 1995年月2月, pp.213-214。 朱文鑫, 「曆法通志」, 上海商務出版社, 1934, p.71。 陳久金, 「調日法研究」, 自然科學史研究, 第3卷第3期, 1984, pp.245-250。

---本文作者任教蘇州大學數學科學學院---