2008年1月14日 星期一

曆法 - 天干與地支

在中國的曆法中,我們會使用「天干」和「地支」來為每一年「編號」,並將這個「編號」稱為「干支」。所謂「天干」,就是指:甲、乙、丙、丁、戊、己、庚、辛、壬、癸等 10 個字,而「地支」就是:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥等 12 個字。將一個「天干」和一個「地支」配合,就得到一個年份的「干支」,到了下一年,就使用下一個「天干」和「地支」來表示。例如:由「甲子」開始,之後就是「乙丑」、「丙寅」…… 等等。當「天干」或「地支」用完了,就從新由「甲」或「子」開始。例如:到了「癸酉」,「天干」用完了,「天干」就從頭開始,得「甲戌」,之後就是「乙亥」。這時,「地支」也用完了,所以下一年就是「丙子」。如此類推。

由於「天干」和「地支」都祇有有限個字,所以這種紀年的方式總會有重複。但要經過多少年,才會重複一次呢?

計算方法很簡單,祇要找出 10 和 12 的最小公倍數(LCM)就可以了。(為甚麼?)由於 10 和 12 的 LCM 是 60,所以這種紀年的方式每隔 60 年就會循環一次。

細心的同學應該會發現,如果「天干」和「地支」可以任意地配對的話,那麼我們應該得到 10 ´ 12 = 120 個組合才對,為何現在祇得 60 個呢?

這個問題其實可以引發出一些非常深奧的數學學問,但長話短說,原來這個問題是與 10 和 12 的最大公因數(HCF)有關的。由於 10 和 12 的 HCF 等於 2,它並不等於 1,所以有一些「天干」和「地支」的組合,是不可能出現的。如果要清楚明白這一點,那麼可以將「天干」換成 1 至 10 等 10 個號字,又將「地支」換成 1 至 12,再將每個年份的「干支」轉成一個序偶,例如:將「甲子」轉換成 (1 , 1)、「乙丑」寫成 (2 , 2) 等等。那麼,我們很容易就可以發現,偶序中的兩個數字,必定要同時為雙數,或者同時為單數。故此我們不會見到「乙(2)子(1)」或「壬(9)亥(12)」等「干支」。偶序中,兩個數字同時是雙數或單數,一共祇得 60 對,所以「干支」也祇有 60 個組合。

一個關於「支干」的數學問題是這樣的:我們知道,1984 年的「干支」為「甲子」,那麼我們如何計算出今年(2008年)的「干支」呢?方法很簡單,祇需要用除法求餘數就可以了。由於 2008 - 1984 + 1 = 25,因此由 1984 年數起,今年就是第 25 年了。(為甚麼要“+ 1”呢?)因為 25 ¸ 10 的餘數為 5,「天干」就是「戊」,25 ¸ 12 的餘數是 1,「地支」就是「子」,所以今年就是「戊子」年了。

另一個和「干支」有關的問題則更有趣,不過,我希望大家想一想,所以不在這裏寫出計算方法了。這個問題是:如果知道該年的「干支」,那麼該年應該是西曆的哪一年呢?例如:我出生於「丁巳」年,那麼我今年幾歲呢?