• 沒有找到結果。

干支記時法的數學分析

N/A
N/A
Protected

Academic year: 2022

Share "干支記時法的數學分析"

Copied!
9
0
0

加載中.... (立即查看全文)

全文

(1)

干 支記時法的數學分析

朱 潤

1. 天干地支的數學分析

時間是事件過程長短和發生順序的度量, 記錄時間對於人類的生存和發展具有極其重要的 意義。 中國古代多用天干地支來記錄時間, 天干有十個, 分別為

甲、 乙、 丙、 丁、 戊、 己、 庚、 辛、 壬、 癸;

地支有十二個, 分別為 :

子、 丑、 寅、 卯、 辰、 巳、 午、 未、 申、 酉、 戌、 亥。

為了便於數學處理, 我們將其按序號來表示, 即

天干H 甲 乙 丙 丁 戊 己 庚 辛 壬 癸 序號 h 1 2 3 4 5 6 7 8 9 10 和

地支E 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥 序號 e 1 2 3 4 5 6 7 8 9 10 11 12

而將天干和地支的名稱作為序號的函數 (數列), 即 H(h) 和 E(e)。 例如 H(5) = 戊, E(11) = 戌, 等等。

上表列出的只是天干和地支的基本取值, 以後隨著序號的增加不斷循環, 因此上述的名稱 函數 (數列) 對於各自的序號具有週期性, 天干的週期為 10, 地支的週期為 12。 任意序號 h 的 天干值為

H(h) = H(h mod 10), (1) 其中 mod 10 表示除以 10 的餘數, 序號 h 按照原始含義應屬於正整數集合, 為了便於向前推 算, 我們將其拓展為整數集合 I, 即 h ∈ I。 由於10 mod 10 = 0 mod 10, 即 10 ≡ 0(mod 10), 因此 「癸」 對應的天干序號也可以認為是 0, 即 H(0) = 癸。

在天干集合 H = {H(0), H(1), H(2), . . . , H(9)} 上定義運算

H(i) ◦ H(j) = H(i + j), (2)

100

(2)

則成為一個 10 階循環群, 其單位元為 H(0), 群元的逆元為 H1(i) = H(−i) = H(10 − i)。

類似地, 任意序號 e 的地支值為

E(e) = E(e mod 12), e ∈ I. (3) 由於 12 ≡ 0(mod 12), 因此 「亥」 對應的地支序號也可以認為是 0, 即 E(0) = 亥。

在地支集合 E = {E(0), E(1), E(2), . . . , E(11)} 上定義運算

E(i) ◦ E(j) = E(i + j), (4) 則成為一個 12 階循環群, 其單位元為 E(0), 群元的逆元為 E1(i) = E(−i) = E(10 − i)。

在此基礎上, 可以構造直積群 HE = {hH(i), E(j)i | 0 ≤ i < 10, 0 ≤ j < 12}, 對應 的群運算為

hH(i), E(j)i ◦ hH(n), E(m)i = hH(i) ◦ H(n), E(j) ◦ E(m)i, (5) 直積群共有 10 × 12 = 120 個群元, 單位元為 H(0) ◦ E(0) = HE(0)。

2. 干支表的數學分析

將十天干和十二地支依次相配, 組成一個基本週期, 以後不斷循環, 古人以此作為年、 月、

日、 時的序號, 叫 「天干地支記時法」, 簡稱 「干支記時法」。

按照上述方法, 我們得到如下的排序表

表 1. 偶和組的干支表

支 1 子 2 丑 3 寅 4 卯 5 辰 6 巳 7 午 8 未 9 申 10 酉 11 戌 12 亥

1 甲 1 51 41 31 21 11

2 乙 2 52 42 32 22 12

3 丙 13 3 53 43 33 23

4 丁 14 4 54 44 34 24

5 戊 25 15 5 55 45 35

6 己 26 16 6 56 46 36

7 庚 37 27 17 7 57 47

8 辛 38 28 18 8 58 48

9 壬 49 39 29 19 9 59

10 癸 50 40 30 20 10 60

(3)

注意, 上表中共列出了 60 對天干地支組合的序號, 其中序號 60 與 0 對於模 60 同餘, 即 60 ≡ 0 mod 60, 所對應的天干地支值相同, 都是 「癸亥」, 以後不再加以區分。

按照週期性, 大於 60 的序數 n 對應的天干地支由 n mod 60 確定。 用數學公式表示為 HE(n) = HE(n mod 60), n∈ I.

上述以十個天干和十二個地支相配組成的六十個干支名稱的干支表, 是當時的人們用來推算日 期的, 可以說是我國最早的日曆。 由於序號數字以 「甲子」 開始, 並在表中形成花紋, 人們又將 其稱為 「花甲子」 表。

設組合排序後的序號為 n, 容易發現

h= n mod 10, e= n mod 12. (6) 由此推出

n= 10k + h, n = 12l + e, (7) 其中 k 和 l 為整數。

將上式中的第一式乘以 6 減去第二式乘以 5, 得到 n= 60k + 6h − 60l − 5e.

在基本週期內, 序號為

N = n mod 60 = (6h − 5e) mod 60. (8) 利用上述公式可以直接由天干地支值來計算其在干支表中的序號。

反過來, 我們也可以利用下列公式可以直接由序號計算對應的干支值

(H(n), E(n)) = (H(n mod 10), E(n mod 12)). (9) 從數學的角度看, 干支表是天干和地支兩個有序週期數列依次組合得到的二元數列。 一般來說 這兩個數列存在 120 種不同的組合情況 (包含表 1 中的空白), 而花甲子表只包含 60 種組合, 這裡的數學意義是什麼?

將十天干和十二地支依次相配, 理論上可以得到兩種分組的方法。 一種是從甲子 (1, 1) 開 始, 即表 1 所示的花甲子表, 其中包括所有同奇同偶的天干地支對, 滿足規律

(h + e) mod 2 = 0, 可以稱為偶和組。

另一種是從甲丑 (1, 2) 開始, 其中包括所有奇偶性不同的天干地支對, 滿足規律 (h + e) mod 2 = 1,

(4)

可以稱為奇和組, 如下所示。

表 2. 奇和組的干支表

支 1 子 2 丑 3 寅 4 卯 5 辰 6 巳 7 午 8 未 9 申 10 酉 11 戌 12 亥

1 甲 1 51 41 31 21 11

2 乙 12 2 52 42 32 22

3 丙 13 3 53 43 33 23

4 丁 24 14 4 54 44 34

5 戊 25 15 5 55 45 35

6 己 36 26 16 6 56 46

7 庚 37 27 17 7 57 47

8 辛 48 38 28 18 8 58

9 壬 49 39 29 19 9 59

10 癸 60 50 40 30 20 10

從群論的角度看, 偶和組中包括直積群的單位元, 滿足群運算的封閉性, 是直積群的一個 子群, 而且是正規子群; 奇和組是偶和組的唯一陪集。 這可能是古人選用偶和組構造花甲子表的 一個深層原因。

3. 干支記時法

用天干地支組合來記年、 月、 日、 時, 叫 「干支記時法」。 天干地支的偶和組合以 60 為週 期, 因此只要給出任一時間點 x0 的天干地支值, 就可以推出其他時間點 x 的天干地支值。 設 該時間點對應的天干地支序號為 n, 則容易推出

n(x) = (x − x0) mod 60 + n(x0). (10) 為了方便, 我們取 n(x0) = 0, 即 x0 的天干地支值為癸亥。 則時間點 x 的天干地支為

n(x) = ∆x mod 60, (11)

其中 ∆x = x − x0 為時間差。

考慮到 60 是天干週期 10 和地支週期 12 的最小公倍數, 因此我們也可以直接計算對應 的天干地支值

h(x) = ∆x mod 10, e(x) = ∆x mod 12, (12)

(5)

3.1.

干支記年

用六十甲子依次記年, 六十年一個週期。 設西元記年的年份為 y, 則其對應的干支記年 (序 號) 為 ny(y)。 考慮到西元 3 年為癸亥年, 即 ny(3) = 0, 因此有

ny(y) = ∆y mod 60,

其中 ∆y = y − 3 為年份差。 我們也可以利用年份差直接計算對應的天干地支 hy(y) = ∆y mod 10, ey(y) = ∆y mod 12.

例如, 西元 2017 年與西元 3 年的年份差為 ∆y = 2017 − 3 = 2014, 因此對應的干支序號為 ny(2017) = 2014 mod 60 = 34,

天干序號和地支序號分別為

hy(2017) = 2014 mod 10 = 4, ey(2017) = 2014 mod 12 = 10.

天干序號 4 對應於 「丁」, 地支序號 10 對應於 「酉」, 因此西元 2017 年為農曆丁酉年。 需要說 明的是 : 干支記年法的新一年由立春開始, 2017 年的立春是二月三日, 所以 2017 年 2 月 3 日立春之後才是丁酉年, 在此之前應是丙申年。

3.2.

干支記月

一年有 12 個月, 用六十甲子依次記月, 5 年一個週期。 已知西元 1903 年 11 月為癸亥月, 因此西元 ###3 年或 ###8 年 11 月都是癸亥月, 與西元月份 mm 對應的干支記月 (序 號) 為

nm(mm) = ∆m mod 60,

其中 ∆m 為西元月份 mm 與某個癸亥月的月份差。 例如, 西元 2017 年 7 月與西元 2013 年 11 月的月份差為

∆m = 12 × 3 + 8 = 44, 即

nm(mm) = ∆m mod 60 = 44.

於是

hm(mm) = 44 mod 10 = 4, em(mm) = 44 mod 12 = 8,

天干序號 4 對應於 「丁」, 地支序號 8 對應於 「未」, 因此西元 2017 年 7 月為農曆丁未月。

(6)

需要說明的是 : 採用干支記月時, 每個地支對應的時間範圍二十四節氣中月初的節氣至下 一個月月初的節氣, 以交節時刻決定始末的一個月時間範圍, 不是該月月初至月底。 例如, 2017 年 7 月 7 日為小暑, 該日之前為丙午月, 自該日起才是丁未月, 直到下下個節氣 8 月 7 日立秋 之前。

具體 24 節氣的名稱、 順序和日期可以參看下列節氣歌 春雨驚春清穀天, 夏滿芒夏暑相連。

秋處露秋寒霜降, 冬雪雪冬小大寒。

上半年是六廿一, 下半年是八廿三。

每月兩節日期定, 最多只差一兩天。

由於節氣以西元年為週期, 一年 24 節氣, 平均每月 2 個節氣。 因此地支記月與西元月份 m 的 關係是固定的, 具體關係為

em(mm) = (m + 1) mod 12.

3.3.

干支記日

干支記日也是 60 日為一個週期, 大約 2 個月。 已知西元 1901 年 2 月 14 日為癸亥日, 因此西元日期 dd 的干支序號為

nd(dd) = ∆d mod 60,

其中 ∆d 為西元日期 dd 到某個癸亥日的日期差。 考慮到西元平年 365 日, 閏年 366 日, 每四 年一閏, 因此 4 年共 1461 天。 而

1461 mod 60 = 21.

因此, 每過 4 年, 同一干支記日的西元日期需要向後順延 21 日。 20 個 4 年順延 420 日, 恰好 為 7 個週期, 因此每 80 年干支記日復原。 又因為西元年份能被 100 整除, 但是不能被 400 整 除時為平年, 因此每遇到一個這種情況, 同一干支記日的西元日期要向後少順延 1 日, 或者說 提前 1 日。

例如, 西元 1981 年 2 月 14 日、 2061 年 2 月 14 日都是癸亥日, 但 2141 年的癸亥日卻 是 2 月 13 日。

如果計算 2017 年 7 月 7 日的干支記日, 該日與 1981 年 2 月 14 日相差 36 年, 折合 9 個 4 年, 向後順延 189 日, 加上年內日差為 143 日, 可以算出日期差為

∆d = (189 + 143) mod 60 = 32.

於是

hd= 32 mod 10 = 2, ed = 32 mod 12 = 8.

(7)

天干序號 2 對應於 「乙」, 地支序號 8 對應於 「未」, 因此西元 2017 年 7 月 7 日為乙未日。

3.4.

干支記時

古人將一天劃分為 12 個時辰, 用地支來命名, 與太陽時 t 的對應關係為

時辰 序數 e 太陽時範圍 中點 t

子時 1 -1 時 ∼ 1 時 0

丑時 2 1 時 ∼ 3 時 2

寅時 3 3 時 ∼ 5 時 4

卯時 4 5 時 ∼ 7 時 6

辰時 5 7 時 ∼ 9 時 8

巳時 6 9 時 ∼ 11 時 10

午時 7 11 時 ∼ 13 時 12 未時 8 13 時 ∼ 15 時 14 申時 9 15 時 ∼ 17 時 16 酉時 10 17 時 ∼ 19 時 18 戌時 11 19 時 ∼ 21 時 20 亥時 12 21 時 ∼ 23 時 22

其中 -1 時為上日的 23 時。 上述關係可以寫成數學公式 e(t) = t div 2 + 1, 其中 div 2 表示用 2 除的商。 例如 :

淩晨 1 點 15 分, 對應的太陽時中點為 2, 時辰為 e(2) = 2 div 2 + 1 = 2, 即丑時;

下午 4 點 45 分, 對應的太陽時中點為 16, 時辰為 e(16) = 16 div 2 + 1 = 2, 即申時。

60 時辰合 5 日, 為時辰干支的一個週期, 而每天只有 12 個時辰, 因而需要和日子的天干 相配組合。 古人的規定是 「甲日」 的 「子時」 作為 「甲子時」, 以後的時辰按照甲子表排序, 因此

「癸日」 的 「亥時」 為 「癸亥時」, 以後每隔 5 日重複。

例如, 西元 1981 年 2 月 14 日為癸亥日, 該日的亥時為 「癸亥時」。 平年為 365 日, 恰好 是 5 的倍數, 因此 1982 年、 1983 年和 1984 年 2 月 14 日的亥時都是 「癸亥時」。 遇到閏年 366 日, 「癸亥時」 所對應的西元日期需要前移 1 天, 因此 1985 年 2 月 13 日的亥時是 「癸亥 時」。一般來說, 每經過一個閏日 「癸亥時」 所對應的西元日期要前移 1 天。 1981 年到 2018 年 初共經過 9 個閏日, 「癸亥時」 對應的西元日期就要前移 9 天, 故 2018 年 2 月 5 日的亥時為

(8)

「癸亥時」。

與西元時刻 tt 對應的干支記時 (序號) 為

nt(tt) = ∆t mod 60,

其中 ∆t 為西元時刻 tt 與癸亥時的時辰差。 例如, 西元 2018 年 2 月 3 日 10 點為巳時, 與最 近一個癸亥時 (2018 年 1 月 31 日亥時) 時辰差為

∆t = 12 × 2 + 6 = 30, 即

nt(tt) = ∆t mod 60 = 30.

於是

ht(tt) = 30 mod 10 = 0, et(tt) = 30 mod 12 = 6.

天干序號 0 對應於 「癸」, 地支序號 6 對應於 「巳」, 因此西元 2018 年 2 月 3 日 10 點為 癸巳時。

應該注意的是 : 干支記時法是以子時的起點 (西元 23 時整, 即次日的 -1 時) 為日期的分 界線, 而西元記時法是以 0 時整 (24 時) 為日期的分界線, 因此西元同一天的子時分為 0 時到 1 時的早子時和 23 時到 24 時的晚子時, 所以遇到甲 (或己) 之日, 0 時到 1 時屬於當日的子 時, 即甲子時; 但 23 時到 24 時屬下一日的子時, 因此是丙子時。 其餘情況可以類推, 詳情參考 下表。

表 3. 干支記時表

時辰 太陽時 甲或己日 乙或庚日 丙或辛日 丁或壬日 戊或癸日 子時 -1 時 ∼ 1 時 甲子時 丙子時 戊子時 庚子時 壬子時 丑時 1 時 ∼ 3 時 乙丑時 丁丑時 己丑時 辛丑時 癸丑時 寅時 3 時 ∼ 5 時 丙寅時 戊寅時 庚寅時 壬寅時 甲寅時 卯時 5 時 ∼ 7 時 丁卯時 己卯時 辛卯時 癸卯時 乙卯時 辰時 7 時 ∼ 9 時 戊辰時 庚辰時 壬辰時 甲辰時 丙辰時 巳時 9 時 ∼ 11 時 己巳時 辛巳時 癸巳時 乙巳時 丁巳時 午時 11 時 ∼ 13 時 庚午時 壬午時 甲午時 丙午時 戊午時 未時 13 時 ∼ 15 時 辛未時 癸未時 乙未時 丁未時 己未時 申時 15 時 ∼ 17 時 壬申時 甲申時 丙申時 戊申時 庚申時 酉時 17 時 ∼ 19 時 癸酉時 乙酉時 丁酉時 己酉時 辛酉時 戌時 19 時 ∼ 21 時 甲戌時 丙戌時 戊戌時 庚戌時 壬戌時 亥時 21 時 ∼ 23 時 乙亥時 丁亥時 己亥時 辛亥時 癸亥時

(9)

4. 結語

從數學的角度進行分析, 我們得到了天干地支記時法的內在意義, 發現天干地支對為週期 數列, 「癸亥」 相當於其坐標原點。 在此基礎上, 給出了由西元記時得到天干地支記時的簡明方 法。

需要說明的是 : 天干地支記時法以節氣分年月, 避免了西元記時法中年分平閏、 月分大小 的缺陷, 是更為科學、 嚴格的太陽曆, 不是迷信。

注 : 天干地支記時法同時可記年、 月、 日、 時, 分別稱為 「年柱、 月柱、 日柱、 時柱」。 每柱 2 個 字, 共八個字。 此八個字就是俗稱的 「八字」, 一個人的 「生辰八字」 就是他出生時間的四柱記 錄。

參考文獻

1. 薛仲三、 歐陽頤。 兩千年中西曆對照表。 北京 : 生活讀書知新三聯書店, 1956。

2. 欒德懷、 馮承天、 張民生(譯)。 對稱性群及其應用。 北京 : 科學出版社, 1981. (W. Miller, Jr., 1972)

—本文作者任教中國安徽省利辛縣第一中學

參考文獻

相關文件

此時我們可以發現,球體是對 x 軸對稱 (繞著 x 軸旋轉任意 角度形狀不變) ,也因此每一個逼近的柱體都是高度極短的

凡是一組資料是隨著時 間的先後順序而取得的, 就可稱為是一組時 間序列的資料。 最常見的例子, 譬如: 某段時 間內所記錄的每日股票市場; 每年太陽黑子 的平均數目等等。

「萬聖節」這個字,起源自天主教教會。每年的 11 月 1 日,是天主教慶祝諸 聖的節日 All Hallows Day 或 All Saint's

123:

123: 用概念去綜合歸納一個字的用法的好處就是,它一方面涵蓋了這個字大部份

[r]

[r]

設一個二位數的十位數字為 x,個位數字為 y,兩個數字的和為 8,若將十位數字與個位數字對調後,所得新數比原數大 54。請 問原二位數字應為多少.. 設一個二位數的十位數字為