治历推闰——如何用数学决定闰月
秦九韶用气骨与朔骨的差值确定闰月位置:这是中国古代阴阳合历的数学核心,用有限数据推算无限周期。
原典
問開禧厯以嘉泰四年甲子嵗天正冬至為一十一日四十四刻六十一分五十四杪十一月經朔一日七十五刻五十五分六十二杪問閏骨閏率各幾何
答曰閏骨九日六十九刻五分九十一杪(不盡一百六十九分杪之一百二十一)
閏骨率十六萬三千七百七十一
術曰以日法各通氣朔日刻分杪各為氣骨朔骨分其氣骨分如約率而一約盡者為可用(或收弃餘分在一刻以下者亦可用)然後與朔骨分相減餘為閏骨率以日法約之為閏骨策
——秦九韶《数书九章》天时类第三题
这道题说的是什么
农历是阴阳合历:
- 阳历部分:以回归年(约365.24天)定节气
- 阴历部分:以朔望月(约29.53天)定月份
问题是:12个朔望月只有354天,比回归年少11天。长期累积会导致月份与季节脱节。怎么办?
答案:加闰月。每2-3年加一个闰月,使历年平均长度接近回归年。
秦九韶要计算的是:给定冬至时刻和十一月朔日时刻,如何确定闰月的位置和大小?
示意图
气骨(冬至距甲子)与朔骨(朔日距甲子)之差即为闰骨,决定闰月位置。日法16900是通分基准。
古人的算法
基本概念
秦九韶使用了一套精密的时间单位系统:
- 1日 = 100刻
- 1刻 = 100分
- 1分 = 100杪
- 1杪 = 100小分
日法:16900(作为通分的分母)
第一步:通分气骨和朔骨
给定:
- 冬至(气骨):11日44刻61分54杪
- 十一月朔(朔骨):1日75刻55分62杪
通分到以"日法"为单位的分数:
约去约率3120(何承天调日法所得):
秦九韶取整数部分:气骨分 = 190360(弃去微分)
第二步:通分朔骨
借位调整(因为气骨要减朔骨,需要通分):
第三步:求闰骨率
答曰写的是163771。秦九韶在草文中做了更精细的调整:
- 气骨分:190360(弃去26小分)
- 朔骨分:29669(借22小分补足)
调整后:
答曰:闰骨率十六万三千七百七十一 ✓
第四步:求闰骨策
(不盡169分杪之121)
答曰:闰骨九日六十九刻五分九十一杪 ✓
现代数学视角
闰骨率的本质是:冬至时刻与朔日时刻的差距。
如果闰骨 > 0,说明冬至在朔日之后,需要闰月来调整。闰骨的大小决定了闰月应该放在哪两个节气之间。
现代历法中,闰月的安排遵循"无中气置闰"规则:如果某个月没有中气,就设为闰月。秦九韶的方法与之等价,但用数学形式表达。
一般公式
设:
- = 气骨分(冬至距甲子)
- = 朔骨分(朔日距甲子)
- = 日法
则:
这个方法的核心思想是同余运算——把所有时间单位通分到一个共同的基准(日法),然后做减法,最后再还原回去。
跟高中数学的关系
本题对应高中数学的同余运算和模算术。
思想延伸:闰月问题本质上是寻找两个周期的最小公倍数。朔望月周期约29.53天,回归年周期约365.24天,它们的比值:
这意味着每年约多0.37个朔望月,每2-3年就需要加一个闰月。
运算练兵场:本题涉及大数运算、分数通分、模运算,是对运算能力的综合训练。
综合题常客:高考中常以数学文化题形式出现,考查学生对古代历法算法的理解。2018年全国卷就出现过关于农历闰月的题目。
思考与拓展
-
如果气骨是15日,朔骨是5日,日法是100,闰骨率是多少?闰骨策是多少?
-
为什么秦九韶要说"不足减则加纪策"?这和同余运算有什么关系?
-
现代农历的闰月是如何确定的?与秦九韶的方法有何异同?
-
查阅《授时历》,郭守敬是如何改进闰月计算的?他提出了什么新的置闰原则?
一句话总结
秦九韶用气骨与朔骨的差值确定闰月位置,体现了中国古代历法"以数驭天"的数学智慧。