甘超一
1公元紀(jì)年法
現(xiàn)行的公元紀(jì)年法是從耶穌出生之年算起,這一年以前的年份叫公元前某年,以后的年份叫公元某年.但應(yīng)該注意,沒有公元0年這一年.我國是從1949年中華人民共和國成立之后采用公元紀(jì)年的,比如今年是公元2017年(可簡記為2017年).
因?yàn)闆]有公元0年,所以本文把公元前1,2,3,…,n,…年分別記作公元0,-1,-2,…,1-n,…年.因而,在下文中的公元n(n∈Z)年中都有意義.
2干支紀(jì)年法
中國自古便有十天干(即甲,乙,丙,丁,戊,己,庚,辛,壬,癸)與十二地支(即子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥)的說法.天干地支紀(jì)年法(簡稱干支紀(jì)年法),是把天干中排奇數(shù)號的(即甲,丙,戊,庚,壬)與地支中排奇數(shù)號的(即子,寅,辰,午,申,戌)任意搭配,但天干在前地支在后(比如甲子,甲寅等等);或把天干中排偶數(shù)號的(即乙,丁,己,辛,癸)與地支中排偶數(shù)號的(即丑,卯,巳,未,酉,亥)任意搭配,也是天干在前地支在后.
由分步乘法計(jì)數(shù)原理可知,奇數(shù)號的搭配是5·6種情形,偶數(shù)號的搭配也是5·6種情形.所以在干支紀(jì)年法中,共有5·6·2即60種情形.這60種情形的前后順序就是干支紀(jì)年法的一個周期(也叫一甲子),即下面6行10列的表1:
表1中的“甲子”、“乙丑”、…、“癸亥”就表示干支甲子年(可簡記為甲子年)、乙丑年、…、癸亥年,數(shù)字1,2,…,60分別表示相應(yīng)干支紀(jì)年的代號.因?yàn)楦芍Ъo(jì)年法是呈周期變化的,所以癸亥年的后一年是甲子年,甲子年的前一年是癸亥年.
3記號
在本文中,把自然數(shù)n被10除所得的余數(shù)即n的個位數(shù)記作(n)10,可得(n)10=0,1,2,…,或9;把自然數(shù)n被12除所得的余數(shù)記作(n)12,可得(n)12=0,1,2,…,或12.
對于已知的整數(shù)m,可得存在唯一的整數(shù)k及自然數(shù)r(r≤10),使得m=10k+r,在本文中把這里的r記為(m)10;同理還可得(m)12的含義.
4把公元紀(jì)年轉(zhuǎn)換成干支紀(jì)年
因?yàn)楦芍Ъo(jì)年甲子年、乙丑年、…、癸亥年中的“甲子”、“乙丑”、…、“癸亥”都是漢字,所以欲把它們與公元紀(jì)年之間進(jìn)行轉(zhuǎn)換,必須先把“甲子”、“乙丑”、…、“癸亥”這些漢字轉(zhuǎn)換成相應(yīng)的數(shù)字.我們規(guī)定十天干與十二地支對應(yīng)的數(shù)字分別是下面的表2、表3:
這樣,甲子年、乙丑年、…、癸亥年就可分別用有序數(shù)對(4,4),(5,5), …,(3,3)來表示,得到下面的表4(可以查得公元1804年是甲子年即干支1年,由60年一甲子可得公元4年也是干支甲子年.再得公元5年是干支乙丑年等等):
由表4可發(fā)現(xiàn)下面的結(jié)論:
公元n(n=1,2,…,60)年是干支GZ年,其中G是n的個位數(shù)在表2中對應(yīng)的天干,Z是n被12除所得的余數(shù)在表3中對應(yīng)的地支.
再由一甲子是60年及第3節(jié)中約定的記號,可得把公元紀(jì)年轉(zhuǎn)換成干支紀(jì)年的算法是:
定理1公元n(n∈Z)年是干支GZ年,其中G是(n)10在表2中對應(yīng)的天干,Z是(n)12在表3中對應(yīng)的地支.
例1把公元2000,2050,3000年及公元前1001年分別轉(zhuǎn)換成干支紀(jì)年.
解當(dāng)n=2000時,可得(n)10=0,(n)12=8.0在表2中對應(yīng)的天干是庚,8在表3中對應(yīng)的地支是辰,所以公元2000年是庚辰年.
當(dāng)n=2050時,可得(n)10=0,(n)12=10.進(jìn)而可得公元2050年是庚午年.
當(dāng)n=3000時,可得(n)10=0,(n)12=0.進(jìn)而可得公元3000年是庚申年.
公元前1001年即公元-1000年,當(dāng)n=-1000時,可得(n)10=0,(n)12=8.進(jìn)而可得公元前1001年是庚辰年.
由一甲子是60年,可得公元前1001年即公元-1000年與公元20年有相同的干支紀(jì)年. 當(dāng)n=20時,可得(n)10=0,(n)12=8.進(jìn)而可得公元前1001年是庚辰年.
5把干支紀(jì)年轉(zhuǎn)換成公元紀(jì)年
下面由干支GZ年(其中天干G在表2中對應(yīng)的數(shù)字是g(g=0,1,2,…,9),地支Z在表3中對應(yīng)的數(shù)字是z(z=0,1,2,…,11),請注意g與z同是奇數(shù)或同是偶數(shù))來求出其對應(yīng)的公元n(n∈Z)年,即已知g,z求n.
由一甲子是60年可知,若求出了一個n的值是n0,則所有n的值為60k+n0(k∈Z),所以問題的關(guān)鍵是求出n的某一個值,使得公元n年是干支GZ年.
由表4的第7列可得,當(dāng)g=0,z=0,2,4,6,8,10時,n的一個值可以分別是60,50,40,30,20,10,進(jìn)而可得此時n的一個值可以是6g-5z;
由表4的第8列可得,當(dāng)g=1,z=1,3,5,7,9,11時,n的一個值可以分別是61,51,41,31,21,11,進(jìn)而可得n的一個值可以是6g-5z;
由表4的第9列可得,當(dāng)g=2,z=0,2,4,6,8,10時, n的一個值可以分別是72,62,52,42,32,22,進(jìn)而可得n的一個值可以是6g-5z;
由表4的第10列可得,當(dāng)g=3,z=1,3,5,7,9,11時, n的一個值可以分別是73,63,53,43,33,23,進(jìn)而可得n的一個值可以是6g-5z;
由表4的第1列可得,當(dāng)g=4,z=0,2,4,6,8,10時, n的一個值可以分別是84,74,64,54,44,34,進(jìn)而可得n的一個值可以是6g-5z;
……
由表4的第6列可得,當(dāng)g=9,z=1,3,5,7,9,11時, n的一個值可以分別是109,99,89,79,69,59,進(jìn)而可得n的一個值可以是6g-5z.
所以由已知的g與z,可得n的一個值可以是6g-5z.
進(jìn)而可得把公元紀(jì)年轉(zhuǎn)換成干支紀(jì)年的算法是:
定理2干支GZ年(其中天干G在表2中對應(yīng)的數(shù)字是g(g=0,1,2,…,9),地支Z在表3中對應(yīng)的數(shù)字z(z=0,1,2,…,11)是公元60k+6g-5z(k∈Z)年.
例2在19世紀(jì)末到20世紀(jì)初的中國歷史上發(fā)生了甲午戰(zhàn)爭、戊戌變法、庚子賠款、辛丑條約、 癸卯學(xué)制、辛亥革命這些歷史事件,請問它們分別發(fā)生于公元哪一年?
解用定理2來求解.
(1)由表2及表3可得g=4,z=10,再得甲午年是公元60k-26(k∈Z)年,進(jìn)而可得甲午戰(zhàn)爭發(fā)生在1894年.
(2)由表2及表3可得g=8,z=2,再得戊戌年是公元60k+38(k∈Z)年,進(jìn)而可得戊戌變法發(fā)生在1898年.
(3)由表2及表3可得g=0,z=4,再得庚子年是公元60k-20(k∈Z)年,進(jìn)而可得庚子賠款發(fā)生在1900年.
(4)由表2及表3可得g=1,z=5,再得辛丑年是公元60k-19(k∈Z)年,進(jìn)而可得辛丑條約發(fā)生在1901年.
(5)由表2及表3可得g=3,z=7,再得癸卯年是公元60k-17(k∈Z)年,進(jìn)而可得癸卯學(xué)制發(fā)生在1903年.
(6)由表2及表3可得g=1,z=3,再得辛亥年是公元60k-9(k∈Z)年,進(jìn)而可得辛辛亥革命發(fā)生在1911年.
注?。┌烟旄?、地支分別按表2、表3轉(zhuǎn)換成相應(yīng)的數(shù)字,會使公元紀(jì)年與干支紀(jì)年之間的轉(zhuǎn)換(即上述定理1、定理2)比較簡潔.
起初,筆者是按照下面的表5、表6來轉(zhuǎn)換的:
ⅱ)本文研究的方法是“發(fā)現(xiàn)規(guī)律”和“數(shù)學(xué)建模”.用同樣的方法還可研究公歷日期與農(nóng)歷日期、公歷日期與星期幾、農(nóng)歷日期與星期幾之間的轉(zhuǎn)換.