幾類特殊分數
埃及分數
上面我們提到,古埃及人非常奇怪地只使用單分子分數,他們總是把普通的分數也都表示為單分子分數之和的形式。由于埃及人對單分子分數的這種鐘愛,現在人們也常常把單分子分數稱為埃及分數。下面,對如何用埃及分數之和的形式來表示普通分數,我們還有一些有趣的事要講。
當然,如果實現這一點而沒有任何限制的話,這就是一個極為簡單的事情了,因為我們有一種最簡單的方法就能做到這一點。

就像把m表示成m個1的和一樣。不過,這種表示實在是太平凡了,平凡的沒有任何意思。對于古埃及人來說,他們所想得到的已不是這種平凡的表示了。比如在萊特草紙上有如下的結果:

其實,將2/n型分數表成埃及分數如果沒有其他要求的話,也根本不是什么難事,只需要找到建立分解式的辦法即可。下面就是一種:
,由此即可得
不過,這一結果與古埃及人的結果并不相同。那么古埃及人到底是采用何種方法得到其結果的呢?人們對此的解答莫衷一是,還未能達成共識。這是數學史家要繼續探討的課題。
對于數學家來說,他們有著不同的探討方向。他們首先考慮的問題是:是否任何一個真分數都可分解成有限個相異埃及分數之和呢?對此,中世紀的斐波那契就已創造出一種算法,給出了肯定的解答。利用他的算法,可以將化為不多于m個不同的單分子分數之和。
例如對2/97,可先求97/2=48.5,然后取第一項為1/49;2/97-1/49=1/4753,于是2/97=1/49+1/4753。用這種算法分解2/n型只需運算一回便可得出結果。不過,在應用這種方法時,計算過程中每一步選擇的都可能是分母最大的分數,所以后來這一算法有了“貪心算法”的綽號。比如說5/121這個分數,如果運用這一算法分解的話,可分為五項,而最大分母值竟有25位數呢!此外,這種方法是否對任意分數都始終有效呢?斐波那契沒有能回答這一問題。直到1880年英國數學家線性代數創始人之一西爾維斯特才第一次證明了這種貪心算法的始終有效性。
至此,對我們而言問題似乎已經被圓滿解決了,但對數學家們來說,還遠遠沒有。他們對分解的形式進一步提出特殊的要求,如他們考慮能否把分解的項數降到最少。下面我們看看在這方面數學家所做的文章。
項數最少當然是兩項了。不過,對于某些真分數來說,兩項是不夠的。也就是說,存在一些分數如4/5不能分解為兩個埃及分數之和。我們還可以舉出前面的5/121作為例子。
1967年,布累策在自己的《數學游覽》一書中給出比斐波那契算法好得多的結果:。1983年,我國一名學生給出:
,另一名學生給出
這些分解方式在項數上都是三項。正如布累策在書中指出的:“無法將5/121表示為項數少于3項的式子。”所以上述分解在在項數上都是最優的。
可見,項數2雖然最少,但是在解決問題時不夠用。上述的特例已說明了這一點。那么三項能不能行呢?
1950年,匈牙利數學家愛多什提出一個猜測,即對任何正整數n>4,方程,都有正整數解。1978年有人證明了對1億之內的n值,即對于 n<108,這個猜想都是對的,但一般性證明至今尚無人給出。這竟然成了一個世界性難題。
與之類似,又有人提出猜想:可以分解為3個埃及分數之和。有人已證明對很大范圍內的數是成立的。但一般性證明至今也是無人能夠給出。
一個自然的更一般的問題于是被提出來:能否把任意真分數分解成3個埃及分數之和呢?如果答案是肯定的,那么在項數方面的最優性就算解決了。
不過,即便這一世界難題被解決了,數學家們還有自己需要考慮的問題。如在上面5/121的例子中我們已看到,有許多解答可以將其分解成三項,使得在項數上達到最優,但這幾種分解方式的最大分母的值有大有小。那么,能否魚與熊掌兼得,將分解式中的分母值也降到最小呢?5/121只是一個特例而已。對于一般的真分數,存在著同樣的問題需要考慮,即:如何將分解式中的最大分母降到最小。這些最優分解問題都是數學家們正在研究的課題。
你看,增添了最優這樣的限制后,就出現了如此多有趣的問題呢!實際上,除此外,1的分解、假分數的分解中也存在著眾多的至今尚未解決的難題。因此,埃及分數至今仍然能夠以其旺盛的生命力屹立在數論中,以它的內在奧妙吸引著無數專業數學工作者和業余數學愛好者,成為人們極感興趣的問題。
小數
小數產生于分數之后,從某種角度而言,它不過是十進分數的一種簡化的寫法。因而,它不過是一類特殊的分數而已。但比起分數來,小數還有著其他的用處,它產生的歷史也較分數晚得多、艱難得多。
在世界歷史上,我國最早引入了十進小數。公元3世紀,劉徽注《九章算術》時遇到了開方開不盡的情況,對此他說“加定法如前,求其微數。微數無名者以為分子,其一退以十為母,其再退以百為母。”實際上他是用十進分數(微數)表示無理根的近似值,這不但開了十進小數之先河,而且為求得圓周率的更精確值創造了必要的條件。遺憾的是,劉徽的這一寶貴思想長期間未引進人們的重視。直到唐初,天文學家為了簡化計算偶爾才又用到了十進分數。
進入唐中葉后,情況有所改觀。如贗本《夏侯陽算經》中出現了化名數為十進小數的例子。如其中有化二丈五尺六寸為0.512端的算法。到宋元時期,社會上對非整數計算有了更高的要求。人們開始大量使用化十進名數單位為十進小數的方法,并編為歌訣。如已知一斤的價錢求幾兩的價錢這類問題,宋元數學家一般采用把兩化為斤的十進小數來解決。數學家楊輝、朱世杰都編有化斤價為兩價的歌訣,這是小數在實際生活中的應用。此外在數學內部,13世紀中下葉秦九韶、李冶、楊輝、朱世杰等數學家繼承發展了劉徽求微數的思想,用十進小數作開方式無理根的近似值,從而使劉徽開方法的優越成就獲得了發揚光大。這些都表明當時我國數學家對小數的運用已趨成熟。從劉徽求微數引入十進小數起,到宋元時期廣泛地應用小數為止,中間約經過一千年。從數學發展本身來說,開方、除法以至普通的算術問題都有可能導致小數的產生,它所以要經歷一個如此緩慢的發展過程主要是由于我國計算工作者拘泥于傳統的分數方法以及缺乏足夠的社會動力。然而,即便如此中國仍是世界上最早使用十進小數的國家。
中國之外,最早使用小數的是15世紀阿拉伯數學家卡西。1424年,他寫了一本《圓周論》,在此書中他引入小數概念,建立小數運算法則和與六十進位制分數進行換算的方法,是除中國之外第一個使用小數運算的學者。書中同時采用六十進制和十進制兩種分數記法給出圓周率的值,其中十進分數(小數)值有17位準確數字。他寫道:用十進位制分數表示圓的周長與直徑的比,目的是為了使“不曉得天文學家用六十進位制計算的人能夠掌握十進位制分數”。卡西的工作為后來小數的通用奠定了基礎。
在歐洲最早引入小數概念的是比利時數學家斯蒂文。1585年他發表《論十進》,書中明確闡述了小數理論,論述了十進制的優點及其運算,并主張一切度量衡和幣制均應改為十進制,還給出小數的表示方法。因而此書被認為是歐洲第一本系統論述小數理論的書。該書當時并沒有引起很大反響,但不久便被譯為多種文字流傳,為小數理論的傳播和在日常生活中的應用起了重要作用。
另一方面,小數的記法也經歷了長期的演變過程。在我國,到了宋、元時代,小數概念在我國得到進一步普及后,同時出現了幾種表示小數的新方法。如秦九韶在《數學九章》中用

分別表示了1.1446154日與91.3134度。在整數部分個位之下的單位,兼起著小數符號的作用。元代(1300年左右)劉瑾著《律呂成書》,其中記錄小數時,采用了把小數部分降低一行的方法。如用這種方法,3.1415926可表示為31415926。清時曾使用在中國數碼字中添加小數點的方法來記小數,張敦仁《緝古算經細草》一書中可以見到具體的例子。
阿拉伯數學家卡西為了把分數中的整數部分從分數中分離出來,使用了不同的方法:有時他利用垂直線把整數部分與分數部分分開,同時在第一部分上面加注“整的”。如圓周率的近似值他記做:。其中整數部分3與后面的小數部分分開寫,并且在整數3上面注上:sah-hah,這是整數的意思。可見,這一記法與我國秦九韶的記法有類似處。在另外的情況下,他采用不同的顏色來區分整數與小數部分。第一部分用黑墨水寫,而第二部分用紅墨水寫。另有些場合下,他在每個數字的上面寫出它的數位。
斯蒂文在其《論十進》一書中給出了小數的記數方法:他在每個符號后面加一個圓圈,在圓圈里記上表明小數數位的數字。例如,數3.237寫成3O2①3②7③。在這種寫法里,用沒有數字的圓圈把整數部分與小數部分隔開。有時候用這樣的寫法:不是把表明數位的符號放在數字間,而是放在數字上面,并且不用圓圈。如上面的小數可以寫成:
0 1 2 3
3 2 3 7
可見,他所引進的十進制小數的符號,是極其笨拙的。瑞士人布吉約在1592年,僅用一個符號0寫于個位數之下,把整數部分同小數部分隔開,比之斯蒂文是一個進步。
明確用“.”如現代這樣表示小數的第一個人是克拉維烏斯,1593年他在自己的數學著作中用46.5表示。從此,用“.”表示小數就為人們所接受。但具體用法上還有很大的不同。1617年,納皮爾更明確地采用了現代小數符號,如以25.803表示
。以后這種用法日益普遍。因為用小數點表示小數既簡明又方便,所以到了18世紀,這種記小數的符號成為一種通用的方法。不過歐洲直到19世紀末,小數的記號仍很混亂。一個小數會有十余種記法。現代小數點的使用大體分為兩大派,歐洲大陸派如德國、法國等國用逗號作小數點。英美派則用圓點“.”表示小數點,逗號用來作分節號。大陸派不用分節號。中國使用英美派記法,但近年來,記數不用分節號了。
至于小數的運算,我們不必再多說什么,因為它與整數的運算是完全一致的。事實上,許多人正是由于這一點才想到引入小數的。如斯蒂文引入小數的本意就是利用十進位思想和他發明的記數符號避免分數,而以整數運算取代之。他在該書的標題下寫道:教授商業中遇到的一切計算如何可以只使用整數而無需分數之助進行。我們前面已經提到在當時的歐洲,人們對分數的計算是相當頭疼的。因而,雖然他的小數記法非常笨拙,但由于它能夠簡化計算,仍被人們所認可。在我國,小數概念的產生也是與簡化計算聯系在一起的。正是簡化計算的需要,成為推動小數概念產生的一大動力。
近似分數
一般人都認為,數學是一門講究精確的科學,容不得半點偏差。但是,事實并非總是如此。因為在生活中為了應用的方便,在許多情況下我們不可能,有時也實在沒有必要追求完全的精確。在這些時候,人們所需要的就是使用起來方便,但又與原來的數相差不大的近似值。這個值往往用一個較簡單的分數來表示。于是,數學中有了關于近似分數的研究課題。
近似分數對我們來說并不陌生。舉一個例子,在地理課上我們學習了地球表面總面積是五億一千萬平方公里,其中海洋面積是在三億六千一百零五萬九千平方公里,陸地總面積是一億四千九百五十萬平方公里。于是,我們說海洋面積占地球表面積的71 %,陸地面積占地球表面積的29%。這里的71/100與29/100是精確的數嗎?不是,為了應用起來方便我們都是采用的近似分數。甚至為了應用更方便,在一般情況下,我們還會用誤差較大,但更簡單的近似分數7/10與3/10來代替呢!這雖不精確,但多簡單明了,應用起來多方便。
這只是近似分數的一個非常簡單的例子,但也可以說明,研究近似分數是很有意義的。那么如何求出一個數(這個數不一定限于有理數,也很可能是后面我們要提到的無理數)的近似分數呢?下面我們來介紹兩種求近似分數的常用方法。
加成法
先來看一個問題:給你兩個不等的分數,你能否找到介于兩者之間的一個分數?這樣一個簡單問題不應該難倒你的吧。其實方法很多,如求兩者的平均值就可以,但是這種方式運算較煩瑣。有沒有更簡單的辦法?
有。只需要將兩個分數的分子、分母分別相加,得到的新分數必介于原來兩分數之間。(對這個結論,你自己愿意證明一下嗎?)這正是我們將要講述的事情。講完后,你將明白,從如此簡單的事實出發,我們可以得到多么不簡單的結論。
為了敘述方便,讓我們先來下個定義。
對一個實數a,取不足近似值:,過剩近似值
,即
,那么易知有:
。我們稱
、
為母近似值,把
稱為上述兩個母分數的加成分數。
當然,一次加成的效果并不一定令人滿意,那么我們可以繼續做下去。如果加成分數是不足近似值,我們可以拿它與過剩近似值做第二次加成,進一步提高精度。同樣,如果所得加成分數是過剩近似值,那么就與不足近似值做第二次加成……如此反復進行下去。如果是一個有理數,那么經過有限次加成可以達到本身;如果是一個無理數,那么我們可以通過這種辦法來達到所需要的精確度。也就是說,可以與的誤差越來越小,直到滿足我們的要求為止。
舉一個例子來看一下:
取 a=67/29,先取母近似值為2/1、3/1,按照上述規則,逐步逼近67/29的加成分數依次為:
2(-),3(+),5/2(+),7/3(+),9/4(-),16/7(-),23/10(-),30/13(-),37/16(+),67/29
右上角所記(-), (+)分別表示不足和過剩近似值。
對這一串加成分數我們做兩點簡單的考察。
其一,7/3與前面的5/2相比,分母大,但是,它的近似程度要好(你可以自己驗證一下)。當然,它比后面某些分數如23/10的近似程度要差些,不過,后面那些近似程度好些的分數的分母卻都比它的分母大。或者換句話說,7/3這一分數滿足:在分母比它小的分數中不存在近似程度比它好的,而那些近似程度比它好的,分母都比它的大。滿足這種條件的的分數叫做最佳近似分數。7/3就是67/29的一個最佳近似分數(注意,這里我們只是簡單說明了這一點,并沒有給出嚴格的證明)。而9/4就不是。因為它的分母雖比7/3的大,但是它與67/29的近似程度卻并不比7/3好。或者說,我們可以用兩個標準來衡量一個近似分數的“好壞”:一是誤差要小;二是分子、分母的數值要小。如果能夠兼顧這兩點,那么我們就稱這個近似分數是一個最佳近似分數;否則就不是最佳近似分數。通過上面的簡單例子可以發現,在加成分數中有的是最佳近似分數,有的不是最佳近似分數。
其二,你可以注意到,上面從3/1到9/4要經過三次加成,才由過剩變成不足。那么,當加成分數連續出現好幾次是不足(或過剩)近似值時,能否一次成功簡化運算呢?可以。我們可以事前通過解不等式:,得出滿足上述不等式的最小x=3自然數是=3,那么原來要加成三次,就化為加成一次,即

這種辦法叫做加權加成法。它與加成法的實質是完全一樣的,但是它可以減少計算的次數,有時會大大減少運算量。
利用這種加成法或加權加成法我們就可以一步一步地找到好的近似分數。事實上,使用加成法來獲得高精度的近似分數在我國古代很早就已經發現并使用在歷法中了。如在漢代,漢武帝曾下令招集民間歷法家20多人,制訂我國史書所載的最早的完整歷法——“太初歷”。在制訂“太初歷”以前,天文工作者就測出一個“朔望月”是天,499/940這個分數太復雜了,用起來不方便。于是太初歷的一個制訂者鄧平想把分數
簡化一下,如果取
,那么太大了些,如果取
,又太小了些。于是,他使用一次加成法,得:
,恰好得到比兩個母近似分數誤差都小的近似分數。所以鄧平取一個朔望月為
天,以此為根據來制訂“太初歷”。
加權加成法,在我國古代叫“調日法”,是與祖沖之同代的南北朝劉宋天文學家何承天首創的。他經過長期的天文觀察,發現當時的歷法不合天文現象,于是制訂了“元嘉歷”。在測得一個朔望月是29.530585天后,他要把小數部分化成一個近似分數,他以9/17 ,26/49為母近似分數,用上述方法算得權數(比重數,加成比重數)為15,得。
他以這個近似分數為根據,制訂出新的歷法。自從何承天采用了“調日法”之后,歷代天文學家都應用它制訂出一個比一個更為精確的歷法來。
連分數法
另一種簡便而有效的求近似分數的辦法是連分數法。在介紹這一方法前,我們先來看一個非常實際的問題。
我們知道,地球繞太陽旋轉一周,回歸到原先位置,稱作一個回歸年。目前世界上通用的公歷就是以回歸年為歷法單位制訂的。它的前身是羅馬人的“儒略歷”。公元前46年,儒略·愷撒在天文學家的幫助下,制訂了一種歷法并以愷撒的名字命名為“儒略歷”。當時測得一個回歸年是天,這并不恰好是一個整數。于是,出現了一個問題,在制訂歷法時,一年(叫“歷年”)總不能有個“零頭”(0.25天)吧!那怎么辦呢?如果一個歷年算365天,少算了一點;如果算366天,又多算了一點,若是我們讓一些年份算365天,而另一些年份算366天,問題不就可以解決了嗎?這就是人們所采用的設置“閏年”的辦法:讓有些年份包含365天,這些年份叫做平年;有些年份包含366天,這些年份叫做閏年(在二月份多一天)。通過置閏的辦法,使較長的時期內歷年的平均天數盡可能接近回歸年。這確實是一個很好的解決辦法。這樣,問題轉化為:需要按照什么規則來設置閏年才合適呢?如果平年是365天,那么一年少算1/4天,四年共少算一天,所以第四年我們可以設為閏年366天,將所差的一天正好補上。也就是,我們采用“四年一閏”的辦法就行了。如果一個回歸年真是365.25天,問題已經非常容易得解決了。然而,老天偏偏與人做對。一個回歸年的準確時間為365.2422天。這樣,如果按照365.25天算,實際上是比實際的天數多了一些,這樣大約每隔128年就會多算一天。短期內可能沒有什么問題,但是時間一長,可就出了麻煩。實際情況正是如此,當儒略歷使用了1600多年后,即在公元1582年,人們發現這個歷法竟與實際的天文現象相差了十多天,因而不得不另用新的歷法,這多出來的十多天怎么辦呢?十分有趣的是,由當時羅馬的統治者下令,從日歷上“抹”去十天,把1582年10月4日之后的一天算作10月15日,于是出現了“四日夜長夢也長,醒來已是十五日”的歷史趣事。
出現這樣大的差錯,從近似分數的角度來看,無非是將回歸年的尾數0.2422近似地看成了1 /4,而這個近似分數誤差太大了些。這里涉及到求近似分數的“好壞”問題。取近似分數為1/4,我們已看到誤差太大。如果取分數為2422/10000,誤差為零,可算是小了,可是其分子、分母太大,在這個實際問題中根本不實用。畢竟我們不能使用10000年取2422個閏年的辦法吧。從數學角度而言,問題在于用什么辦法來找到我們所需要的“好”的近似分數。這就涉及到如何求得回歸年的尾數0.2422的更好的近似分數。下面我們就來介紹一種新的連分數法來解決這一問題。
首先來說一下什么是連分數。一般所謂的連分數,其實是簡單連分數。最古老的書寫形式是:

其中a1是正、負整數或零,而a2、a3、a4……都是正整數。
由此可見,連分數實際上是一種變相的繁分數。那么如何才能把一個既約分數化為連分數呢?要執行的算法非常簡單,基本上只有兩條:
1.執行除法,取出商數中的整數部分;
2.將商的小數部分顛倒。
如此反復地進行下去。
我們就以0.2422這個并不簡單的例子演算一下吧。

你看,演算方法并不難掌握吧。不過,有兩點令人感到不太舒服。第一,上述的寫法雖然非常直觀、淺顯、一目了然,但從節約紙張的角度來說,是太占地方了。于是,后來人們陸續引入了幾種新的記法。現在一般使用[a1; a2, a3, … an] 來表示連分數,這里 a1, a2, a3, … an稱為連分數的部分商。使用這種記法我們可以得到0.2422=[0;4 ,7 ,1 ,3 ,4 ,1 ,1 ,1 ,1,2]。也許有讀者會說,這樣表示有點太抽象了。這可沒有辦法避免。因為數學符號的演變過程就是這樣,從具體直觀逐漸到抽象。
第二,運算過程好像稍微復雜了些。其實,這一過程可以用輾轉相除法予以簡化。所謂輾轉相除法就是求兩數最大公約數的歐幾里得算法。從這一點上來看,連分數與歐幾里得算法有著密切聯系。正因此,一些數學史家認為早在古希臘,人們已經掌握了連分數的方法。至于古希臘人是否完成了這一跨越,不是這本書要探討下去的問題了。不過,有據可查的是,印度數學家阿耶波多的著作中可以看到連分數,此人大約死于公元550年。
如何把一個既約分數化為連分數,我們已經了解了。不過,有的讀者可能已經要問了,我們這樣做有什么用呢?不會是因為人們沒有事干,變換著玩吧?當然不會如此。前面,我們不是已經提到過了嗎?我們的目的是要通過連分數求得近似分數。現在,連分數已經得到了,如何求近似分數呢?很簡單,把連分數[a1; a2, a3, … an]在第一、第二、第三……層處切斷,再把它們重新化回普通的既約分數,由此得到的這些分數被稱為連分數的第一、第二、第三……個漸近分數。這種求近似分數的方法我們叫做連分數法。
用通俗的說法來描述連分數法求近似分數的要點就是“丟尾巴,繁化簡”。所謂“丟尾巴”就是逐次丟去連分數最下面的分數;然后“繁化簡”,把剩下的連分數用化簡繁分數的法則化成一個簡單分數,這個分數就是漸近分數。這個過程可以用一種填表的方法予以簡化。這里我們就不再說那么多了。
必須注意,一個數的近似分數很多,求近似分數的方法也很多,如前面已介紹過的加成法。但只有用連分數法求得的近似分數我們才叫它漸近分數。一串漸近分數的誤差越來越小,逐步接近原來的數。這正是漸近分數名稱之由來。引入漸近分數,是由于它具有一些特殊的性質,而這些特殊性質對我們解決某些問題來說是很有用的。讓我們先介紹它具有的部分性質:
1.漸近分數必定是最簡分數;
2.第一、三、五……是不足近似分數,并且它們的值一個比一個大;而第二、四、六……則是過剩近似分數,并且它們的值一個比一個小。換言之,漸近分數將是交替地小于或大于數的真值。對有理數而言,最終會到達其真值,但對后面我們提到的無理數而言卻是永遠到不了。不過,在每一步,漸近分數都將越來越接近于真值。于是,連分數提供了一種逼近實數的方法。
3.任何數都可寫成一個簡單連分數。有理數表示成連分數的形式,其元素的個數必定是有限個,所以叫有限連分數。無理數表示成連分數的形式,其元素的個數必定是無限個,所以叫無限連分數。有點令人感到意外的是,無理數的連分數形式中竟會出現周期性,這一點與無理數的小數表示大不相同——我們知道在小數表示中無理數永不循環。
4.漸近分數都是最佳逼近。這是漸近分數具有的一個重要性質。你可能記得加成分數就不具有這種好的性質。不過,這里要注意的是,這句話反過來不成立。即,是最佳逼近的近似分數并不一定是漸近分數。就是說,用連分數法求不出所有的漸近分數。
于是我們知道,連分數法是一個求近似分數很好的方法。第一,可以按照一定的法則去算,不必瞎撞瞎碰;第二,是一下子可以得到幾個分數,可供人們選擇;第三,求得的漸近分數都是最佳逼近。
好了,說了這么些,應該把話題拉回來了。下面,讓我們求一下0.2422的漸近分數吧。
對 [0;4,7,1,3,4,1,1,1,1,2] 使用丟尾巴、繁化簡。于是可以得到漸近分數如下:
1/4、7/29、8/33、31/128、163/673……
這些漸近分數一個比一個更接近0.2422。利用這些漸近分數我們在理論上就可以說,四年加一閏是初步最佳方案;29年四閏更好些;33年8閏會更好,這相當于99年加24天;當然從精確方面考慮128年31閏更好些等等。不過,當時的歷法家采用的卻是近似分數97/400,就是把一回歸年近似地看作是365天。也就是說,設閏時要在400年里安排97個閏年。即,現在的公歷(也叫“格里歷”)采用的是“400年97閏”。并做出這樣的規定:以公歷紀元作標準,凡是能被4整除的年份是閏年,這樣400年有100個閏年;但逢百之年,必須要能被400整除的才是閏年,這樣100個閏年中又減去了三個閏年,剩下97個閏年。即“四年一閏百年24閏,四百年再加一閏”。
由于97/400=0.2425與0.2422僅相差0.0003,所以這樣安排以后,要經過三千多年才相差一天,這是相當精確了。當然,如果選取我們理論上的漸近分數31/128,那么你可以算一下誤差會更小,也就是更精確些。只不過,由于“百年24閏,四百年再加一閏”既好記又實用,所以,歷法家們的這種設閏方案也就為人們包括數學家所接受了。這里,我們又一次看到,在實際應用中,方便實用往往比精確更受人們的重視。
事實上,利用近似分數的知識,可以幫助我們推算許多天文現象出現的周期。下面讓我們再來看幾個天文現象的例子。
我國通用的歷法,除了公歷外,還有一種叫夏歷(也叫農歷),它是既考慮了地球繞太陽運動,又考慮了月亮繞地球運動的“陰陽歷”。地球自轉一周是一天。月亮繞地球轉一周經歷一次“朔”(月亮暗的半個球朝向地球,這時候,夜里我們是看不到月亮的)、“望”(滿月,這時期,夜里我們可看到一輪明月)變化,時間是29日12時44分2.9秒(29.5306天),叫做一個“朔望月”。地球繞太陽公轉一周是一年。一年為365.2422天。一月為29.5306天。一年的天數不是一月天數的整數倍,而是12.368倍,那么把一年定成幾個整月好呢?如果一年算作12個月,那么每年少算了若干天;如果一年算13個月,那么每年多算了若干天;這就要用設置“閏月”的辦法來解決。平常的年份,1年算12個月,12個月之外余下的天數(約11天)幾年以后又“積”成一個月,這一年應該有13個月。在夏歷里,就把多出來的一個月叫“閏月”,這一年就叫“閏年”。于是,這就提出一個問題:相隔幾年設置一個閏年好呢?讓我們也用連分數法求一下的漸近分數。經計算可得到其漸近分數為:12,
,
,
,
,
,
,
, …… 前面幾個太粗糙了些。11年4閏好一些,19年7閏就更好些了。我國古代數學家們曾為了更好地解決這個問題耗費心思,并制訂出精確程度越來越好的歷法。如祖沖之制訂《大明歷》以391年置144閏來代替古老的十九年七閏的辦法。這個144/391這個分數是怎樣推算出來的呢?這同樣是人們關注已久的問題。有人推測他是用連分數法求得的。如果這一推測成立,那么他是熟悉連分數法的。
你有興趣的話可以去查一下閏月情況,可以發現十九年中大致有七個閏月。至于究竟哪一年是閏年,閏哪一個月,這是天文工作者根據天文現象安排的,我們這里不作介紹了。
另一個問題是,一個月應該安排多少天呢?讓我們把0.5603天展成漸近分數如下:
1/1, 1/2, 8/15, 9/17, 26/49, 867/1634, 893/1683, 2653/5000
也就是說,就一個月來說,最近似的是30天,兩個月就應當一大一小,而15個月應當8大7小,17個月中9大8小等。
類似情況在天文學上是很多的。例如1962年2月5日,金星、木星、水星、火星、土星在同一方向上出現,而且就在這方向上日食也正好發生。這種現象叫做“日月合璧,五星聯珠,七曜同宮”。這是幾百年才出現一次的現象。又如到1982年,太陽系八大行星及冥王星將運行到太陽的一側,大致聯成一線,這種現象叫做“九星聯珠”。九星聯珠大概179年出現一次,最近一次發生在2000年5月20日。
如果你想大致了解這類現象何時出現,就可以借助于連分數法去推算一下。怎么樣,數學知識很有用吧!當你有了預測這類事件的本事后,你會覺得這些天文現象是很自然的,并沒有什么特別神秘的地方。你至少不會再相信那些迷信的鬼話了吧。
此外,我們需要說明的是,連分數法的應用并不限于這些。它在數學上還有許多其他的應用。其實幾乎任何一本數論書里都有連分數的章節,在計算機與現今非常時髦的“混沌”理論中也少不了它,以致令許多沒有學過它的人不得不“回頭”補課。