圓周率π的計算曆程及各種腦洞大開的估計方法

演算法與數學之美發表於2018-10-18

圓周率是一個極其馳名的數。從有文字記載的歷史開始,這個數就引進了外行人和學者們的興趣。作為一個非常重要的常數,圓周率最早是出於解決有關圓的計算問題。僅憑這一點,求出它的儘量準確的近似值,就是一個極其迫切的問題了。回顧歷史,人類對 π 的認識過程,反映了數學和計算技術發展情形的一個側面。 π 的研究,在一定程度上反映這個地區或時代的數學水平。為求得圓周率的值,人類走過了漫長而曲折的道路,它的歷史是饒有趣味的。我們可以將這一計算曆程分為幾個階段。


實驗時期


通過實驗對 π 值進行估算,這是計算 π 的的第一階段。這種對 π 值的估算基本上都是以觀察或實驗為根據,是基於對一個圓的周長和直徑的實際測量而得出的。在古代世界,實際上長期使用 π =3這個數值。最早見於文字記載的有基督教《聖經》中的章節,其上取圓周率為3。這一段描述的事大約發生在公元前950年前後。其他如巴比倫、印度、中國等也長期使用3這個粗略而簡單實用的數值。在我國劉徽之前“圓徑一而週三”曾廣泛流傳。


早期的人們還使用了其它的粗糙方法。如古埃及、古希臘人曾用穀粒擺在圓形上,以數粒數與方形對比的方法取得數值。或用勻重木板鋸成圓形和方形以秤量對比取值……由此,得到圓周率的稍好些的值。如古埃及人應用了約四千年的 4 (8/9)2 = 3.1605。在印度,公元前六世紀,曾取 π= √10 = 3.162。在我國東、西漢之交,新朝王莽令劉歆製造量的容器――律嘉量斛。劉歆在製造標準容器的過程中就需要用到圓周率的值。為此,他大約也是通過做實驗,得到一些關於圓周率的並不劃一的近似值。現在根據銘文推算,其計算值分別取為3.1547,3.1992,3.1498,3.2031比徑一週三的古率已有所進步。


幾何法時期


憑直觀推測或實物度量,來計算 π 值的實驗方法所得到的結果是相當粗略的。

真正使圓周率計算建立在科學的基礎上,首先應歸功於阿基米德。他是科學地研究這一常數的第一個人,是他首先提出了一種能夠藉助數學過程而不是通過測量的、能夠把 π 的值精確到任意精度的方法。由此,開創了圓周率計算的第二階段。

640?wx_fmt=png

圓周長大於內接正四邊形而小於外切正四邊形,因此 2√2 < π < 4 。

當然,這是一個差勁透頂的例子。據說阿基米德用到了正96邊形才算出他的值域。


阿基米德求圓周率的更精確近似值的方法,體現在他的一篇論文《圓的測定》之中。在這一書中,阿基米德第一次創用上、下界來確定 π 的近似值,他用幾何方法證明了“圓周長與圓直徑之比小於 3+(1/7) 而大於 3 + (10/71) ”,他還提供了誤差的估計。重要的是,這種方法從理論上而言,能夠求得圓周率的更準確的值。到公元150年左右,希臘天文學家托勒密得出 π =3.1416,取得了自阿基米德以來的巨大進步。


640?wx_fmt=png

割圓術。不斷地利用勾股定理,來計算正N邊形的邊長。

在我國,首先是由數學家劉徽得出較精確的圓周率。公元263年前後,劉徽提出著名的割圓術,得出 π =3.14,通常稱為“徽率”。

恐怕大家更加熟悉的是祖沖之所做出的貢獻吧。對此,《隋書·律曆志》有如下記載:“宋末,南徐州從事祖沖之更開密法。以圓徑一億為丈,圓周盈數三丈一尺四寸一分五釐九毫二秒七忽,朒數三丈一尺四寸一分五釐九毫二秒六忽,正數在盈朒二限之間。密率:圓徑一百一十三,圓周三百五十五。約率,圓徑七,週二十二。”

這一記錄指出,祖沖之關於圓周率的兩大貢獻。其一是求得圓周率

3.1415926 < π < 3.1415927 

其二是,得到 π 的兩個近似分數即:約率為22/7;密率為355/113。

他算出的 π 的8位可靠數字,不但在當時是最精密的圓周率,而且保持世界記錄九百多年。以致於有數學史家提議將這一結果命名為“祖率”。


640?wx_fmt=png
中國發行的祖沖之紀念郵票


我國再回過頭來看一下國外所取得的成果。

1150年,印度數學家婆什迦羅第二計算出 π= 3927/1250 = 3.1416。1424年,中亞細亞地區的天文學家、數學家卡西著《圓周論》,計算了3×228=805,306,368邊內接與外切正多邊形的周長,求出 π 值,他的結果是:

π=3.14159265358979325

有十七位準確數字。這是國外第一次打破祖沖之的記錄。

16世紀的法國數學家韋達利用阿基米德的方法計算 π 近似值,用 6×216正邊形,推算出精確到9位小數的 π 值。他所採用的仍然是阿基米德的方法,但韋達卻擁有比阿基米德更先進的工具:十進位置制。17世紀初,德國人魯道夫用了幾乎一生的時間鑽研這個問題。他也將新的十進位制與早的阿基米德方法結合起來,但他不是從正六邊形開始並將其邊數翻番的,他是從正方形開始的,一直推匯出了有262條邊的正多邊形,約4,610,000,000,000,000,000邊形!這樣,算出小數35位。為了記念他的這一非凡成果,在德國圓周率 π 被稱為“魯道夫數”。但是,用幾何方法求其值,計算量很大,這樣算下去,窮數學家一生也改進不了多少。到魯道夫可以說已經登峰造極,古典方法已引導數學家們走得很遠,再向前推進,必須在方法上有所突破。

17世紀出現了數學分析,這銳利的工具使得許多初等數學束手無策的問題迎刃而解。 π 的計算曆史也隨之進入了一個新的階段。


分析法時期


這一時期人們開始擺脫求多邊形周長的繁難計算,利用無窮級數或無窮連乘積來算 π 。

1593年,韋達給出

640?wx_fmt=png

韋達的公式


這一不尋常的公式是 π 的最早分析表示式。甚至在今天,這個公式的優美也會令我們讚歎不已。它表明僅僅藉助數字2,通過一系列的加、乘、除和開平方就可算出 π 值。

接著有多種表示式出現。如沃利斯1650年給出:

640?wx_fmt=png

沃利斯的公式


1706年,梅欽建立了一個重要的公式,現以他的名字命名:

640?wx_fmt=gif

梅欽公式


再利用分析中的級數展開,他算到小數後100位。

這樣的方法遠比可憐的魯道夫用大半生時間才摳出的35位小數的方法簡便得多。顯然,級數方法宣告了古典方法的過時。此後,對於圓周率的計算像馬拉松式競賽,紀錄一個接著一個:

1844年,達塞利用公式:

640?wx_fmt=png

算到200位。


19世紀以後,類似的公式不斷湧現, π 的位數也迅速增長。1873年,謝克斯利用梅欽的一系列方法,級數公式將 π 算到小數後707位。為了得到這項空前的紀錄,他花費了二十年的時間。他死後,人們將這凝聚著他畢生心血的數值,銘刻在他的墓碑上,以頌揚他頑強的意志和堅韌不拔的毅力。於是在他的墓碑上留下了他一生心血的結晶: π 的小數點後707位數值。這一驚人的結果成為此後74年的標準。此後半個世紀,人們對他的計算結果深信不疑,或者說即便懷疑也沒有辦法來檢查它是否正確。以致於在1937年巴黎博覽會發現館的天井裡,依然顯赫地刻著他求出的 π 值。

又過了若干年,數學家弗格森對他的計算結果產生了懷疑,其疑問基於如下猜想:在 π 的數值中,儘管各數字排列沒有規律可循,但是各數碼出現的機會應該相同。當他對謝克斯的結果進行統計時,發現各數字出現次數過於參差不齊。於是懷疑有誤。他使用了當時所能找到的最先進的計算工具,從1944年5月到1945年5月,算了整整一年。1946年,弗格森發現第528位是錯的(應為4,誤為5)。謝克斯的值中足足有一百多位全都報了銷,這把可憐的謝克斯和他的十五年浪費了的光陰全部一筆勾銷了。

對此,有人曾嘲笑他說:數學史在記錄了諸如阿基米德、費馬等人的著作之餘,也將會擠出那麼一、二行的篇幅來記述1873年前謝克斯曾把 π 計算到小數707位這件事。這樣,他也許會覺得自己的生命沒有虛度。如果確實是這樣的話,他的目的達到了。

1948年1月弗格森和倫奇兩人共同發表有808位正確小數的 π 。這是人工計算 π 的最高記錄。


計算機時期


1946年,世界第一臺計算機ENIAC製造成功,標誌著人類歷史邁入了電腦時代。電腦的出現導致了計算方面的根本革命。1949年,ENIAC根據梅欽公式計算到2035(一說是2037)位小數,包括準備和整理時間在內僅用了70小時。計算機的發展一日千里,其記錄也就被頻頻打破。

640?wx_fmt=jpeg
ENIAC:一個時代的開始

1973年,有人就把圓周率算到了小數點後100萬位,並將結果印成一本二百頁厚的書,可謂世界上最枯燥無味的書了。1989年突破10億大關,1995年10月超過64億位。1999年9月30日,《文摘報》報導,日本東京大學教授金田康正已求到2061.5843億位的小數值。如果將這些數字列印在A4大小的影印紙上,令每頁印2萬位數字,那麼,這些紙摞起來將高達五六百米。來自最新的報導:金田康正利用一臺超級計算機,計算出圓周率小數點後一兆二千四百一十一億位數,改寫了他本人兩年前創造的紀錄。據悉,金田教授與日立製作所的員工合作,利用目前計算能力居世界第二十六位的超級計算機,使用新的計算方法,耗時四百多個小時,才計算出新的數位,比他一九九九年九月計算出的小數點後二千六百一十一位提高了六倍。圓周率小數點後第一兆位數是二,第一兆二千四百一十一億位數為五。如果一秒鐘讀一位數,大約四萬年後才能讀完。


不過,現在打破記錄,不管推進到多少位,也不會令人感到特別的驚奇了。實際上,把 π 的數值算得過分精確,應用意義並不大。現代科技領域使用的 π 值,有十幾位已經足夠。如果用魯道夫的35位小數的 π 值計算一個能把太陽系包圍起來的圓的周長,誤差還不到質子直徑的百萬分之一。我們還可以引美國天文學家西蒙·紐克姆的話來說明這種計算的實用價值:

“十位小數就足以使地球周界準確到一英寸以內,三十位小數便能使整個可見宇宙的四周準確到連最強大的顯微鏡都不能分辨的一個量。”

那麼為什麼數學家們還象登山運動員那樣,奮力向上攀登,一直求下去而不是停止對 π 的探索呢?為什麼其小數值有如此的魅力呢?

這其中大概免不了有人類的好奇心與領先於人的心態作怪,但除此之外,還有許多其它原因。


640?wx_fmt=jpeg


奔騰與圓周率之間的奇妙關係……

1、它現在可以被人們用來測試或檢驗超級計算機的各項效能,特別是運算速度與計算過程的穩定性。這對計算機本身的改進至關重要。就在幾年前,當Intel公司推出奔騰(Pentium)時,發現它有一點小問題,這問題正是通過執行 π 的計算而找到的。這正是超高精度的 π 計算直到今天仍然有重要意義的原因之一。

2、 計算的方法和思路可以引發新的概念和思想。雖然計算機的計算速度超出任何人的想象,但畢竟還需要由數學家去編制程式,指導計算機正確運算。實際上,確切地說,當我們把 π 的計算曆史劃分出一個電子計算機時期時,這並非意味著計算方法上的改進,而只是計算工具有了一個大飛躍而已。因而如何改進計算技術,研究出更好的計算公式,使公式收斂得更快、能極快地達到較大的精確度仍是數學家們面對的一個重要課題。在這方面,本世紀印度天才數學家拉馬努揚得出了一些很好的結果。他發現了許多能夠迅速而精確地計算 π 近似值的公式。他的見解開通了更有效地計算 π 近似值的思路。現在計算機計算 π 值的公式就是由他得到的。至於這位極富傳奇色彩的數學家的故事,在這本小書中我們不想多做介紹了。不過,我希望大家能夠明白 π 的故事講述的是人類的勝利,而不是機器的勝利。

3、還有一個關於 π 的計算的問題是:我們能否無限地繼續算下去?答案是:不行!根據朱達偌夫斯基的估計,我們最多算1077位。雖然,現在我們離這一極限還相差很遠很遠,但這畢竟是一個界限。為了不受這一界限的約束,就需要從計算理論上有新的突破。前面我們所提到的計算,不管用什麼公式都必須從頭算起,一旦前面的某一位出錯,後面的數值完全沒有意義。還記得令人遺憾的謝克斯嗎?他就是歷史上最慘痛的教訓。

4、於是,有人想能否計算時不從頭開始,而是從半截開始呢?這一根本性的想法就是尋找並行演算法公式。1996年,圓周率的並行演算法公式終於找到,但這是一個16進位的公式,這樣很容易得出的1000億位的數值,只不過是16進位的。是否有10進位的平行計算公式,仍是未來數學的一大難題。

5、作為一個無窮數列,數學家感興趣的把 π 展開到上億位,能夠提供充足的資料來驗證人們所提出的某些理論問題,可以發現許多迷人的性質。如,在 π 的十進展開中,10個數字,哪些比較稀,哪些比較密? π 的數字展開中某些數字出現的頻率會比另一些高嗎?或許它們並非完全隨意?這樣的想法並非是無聊之舉。只有那些思想敏銳的人才會問這種貌似簡單,許多人司空見慣但卻不屑發問的問題。

6、數學家弗格森最早有過這種猜想:在 π 的數值式中各數碼出現的概率相同。正是他的這個猜想為發現和糾正向克斯計算 π 值的錯誤立下了汗馬功勞。然而,猜想並不等於現實。弗格森想驗證它,卻無能為力。後人也想驗證它,也是苦於已知的 π 值的位數太少。甚至當位數太少時,人們有理由對猜想的正確性做出懷疑。如,數字0的出現機會在開始時就非常少。前50位中只有1個0,第一次出現在32位上。可是,這種現象隨著資料的增多,很快就改變了:100位以內有8個0;200位以內有19個0;……1000萬位以內有999,440個0;……60億位以內有599,963,005個0,幾乎佔1/10。

其他數字又如何呢?結果顯示,每一個都差不多是1/10,有的多一點,有的少一點。雖然有些偏差,但都在1/10000之內。

7、人們還想知道: π 的數字展開真的沒有一定的模式嗎?我們希望能夠在十進位制展開式中通過研究數字的統計分佈,尋找任何可能的模型――如果存在這種模型的話,迄今為止尚未發現有這種模型。同時我們還想了解: π 的展開式中含有無窮的樣式變化嗎?或者說,是否任何形式的數字排列都會出現呢?著名數學家希爾伯特在沒有發表的筆記本中曾提出下面的問題: π 的十進展開中是否有10個9連在一起?以現在算到的60億位數字來看,已經出現:連續6個9連在一起。希爾伯特的問題答案似乎應該是肯定的,看來任何數字的排列都應該出現,只是什麼時候出現而已。但這還需要更多 π 的數位的計算才能提供切實的證據。

8、在這方面,還有如下的統計結果:在60億數字中已出現連在一起的8個8;9個7;10個6;小數點後第710150位與3204765位開始,均連續出現了七個3;小數點52638位起連續出現了14142135這八個數字,這恰是的前八位;小數點後第2747956位起,出現了有趣的數列876543210,遺憾的是前面缺個9;還有更有趣的數列123456789也出現了。

如果繼續算下去,看來各種型別的數字列組合可能都會出現。


拾零: π 的其它計算方法


在1777年出版的《或然性算術實驗》一書中,蒲豐提出了用實驗方法計算 π 。這個實驗方法的操作很簡單:找一根粗細均勻,長度為 d 的細針,並在一張白紙上畫上一組間距為 l 的平行線(方便起見,常取 l = d/2),然後一次又一次地將小針任意投擲在白紙上。這樣反覆地投多次,數數針與任意平行線相交的次數,於是就可以得到 π 的近似值。因為蒲豐本人證明了針與任意平行線相交的概率為 p = 2l/πd 。利用這一公式,可以用概率方法得到圓周率的近似值。在一次實驗中,他選取 l = d/2 ,然後投針2212次,其中針與平行線相交704次,這樣求得圓周率的近似值為 2212/704 = 3.142。當實驗中投的次數相當多時,就可以得到 π 的更精確的值。

1850年,一位叫沃爾夫的人在投擲5000多次後,得到 π 的近似值為3.1596。目前宣稱用這種方法得到最好結果的是義大利人拉茲瑞尼。在1901年,他重複這項實驗,作了3408次投針,求得 π 的近似值為3.1415929,這個結果是如此準確,以致於很多人懷疑其實驗的真偽。如美國猶他州奧格登的國立韋伯大學的L·巴傑就對此提出過有力的質疑。

不過,蒲豐實驗的重要性並非是為了求得比其它方法更精確的 π 值。蒲豐投針問題的重要性在於它是第一個用幾何形式表達概率問題的例子。計算 π 的這一方法,不但因其新穎,奇妙而讓人叫絕,而且它開創了使用隨機數處理確定性數學問題的先河,是用偶然性方法去解決確定性計算的前導。

在用概率方法計算 π 值中還要提到的是:R·查特在1904年發現,兩個隨意寫出的數中,互素的概率為6/π2。1995年4月英國《自然》雜誌刊登文章,介紹英國伯明翰市阿斯頓大學電腦科學與應用數學系的羅伯特·馬修斯,如何利用夜空中亮星的分佈來計算圓周率。馬修斯從100顆最亮的星星中隨意選取一對又一對進行分析,計算它們位置之間的角距。他檢查了100萬對因子,據此求得 π 的值約為3.12772。這個值與真值相對誤差不超過5%。

640?wx_fmt=jpeg
無窮的神祕氣息:紀梵希的男用香水 π 。廣告詞是:Explore pi, explore the universe


通過幾何、微積分、概率等廣泛的範圍和渠道發現 π ,這充分顯示了數學方法的奇異美。 π 竟然與這麼些表面看來風馬牛不相及的試驗,溝通在一起,這的確使人驚訝不已。


在這些追求的過程中,誕生了一批千奇百怪的求π法。比如蒲豐投針實驗等等。下面有兩種實驗性的方法,也頗讓人讚歎不已!


第一種:任意寫兩個小於1的數(x,y),將他和1組成一個數對(x,y, 1),則由x、y和1能構成一個鈍角三角形的概率為(π-2)/4


利用這個結論也可以求出π的近似值,方法和第一種方法一樣。不過這個結論我們倒是可以證明的。


證明:我們現在考慮實數對(x,y),因為x和y均小於1,故在XOY平面上,點對(x,y)是落在如圖1所示的的單位正方形OACB裡面的。


640?wx_fmt=jpeg

圖1


於是,只要我們求出(x,y,1)能構成鈍角三角形的(x,y)在正方形中所佔據的面積大小S(如圖1中的陰影部分),那麼S/正方形面積,即S就是我們所求的概率了。


首先,必須滿足x+y>1。這很顯然的,兩邊之和大於第三邊。


由余弦定理12=x2+y2-2xycosα。因為α為鈍角,所以cosα<0,也就是有x2+y2<1。綜合起來,x和y必須滿足的關係就是由下面的兩個不等式確定:x+y>1且x2+y2<1。


x+y>1表示點(x,y)只能出現在AB上方,x2+y2<1表示這些點只能出現在單位圓以內,這不就是剛好是我們圖1裡面的陰影部分嗎?於是:


(x,y,1)構成一個鈍角三角形的概率p=S=1/4π-1/2=(π-2)/4。


所以,如果有m個人參加實驗,有n個人寫出的x和y能構成鈍角三角形,那麼就有n/m=(π-2)/4,即有π=4n/m+2。


如果這些東西都不讓你覺得驚訝的話,那麼下面的事實一定足以使你目瞪口呆了:


1995年4月,英國《自然》雜誌刊登了伯明翰城阿斯頓大學電腦科學與應用數學系的馬修斯發表的一篇文章,他記述了他如何通過觀察天空中亮星的分佈計算圓周率,讀來的確使人驚訝,但是原理卻是如此滴簡單,馬修斯做的,就是從我們熟悉的事物中探求數學中有趣的道理。馬修斯如此試驗基於的事實很簡單,每一個接觸過數論的人都知道:


任意兩個自然數互質的概率為6/(π2)。


他從眾多星星中選擇100個亮星,將這些亮星兩個兩個分成一對,然後計算每對星之間的角距,得出一堆資料,然後檢查這些資料的因子情況(總共近100萬對因子),從中計算出π值約為3.1272,與π的數值3.1416的相對誤差很小。


640?wx_fmt=jpeg


看來,馬修斯的工作就是從星星中獲得一堆隨機數而已,然後藉助數學定理計算圓周率。受此啟發,你也完全可以藉助生活中熟悉的事物去獲得一堆自然數,同樣可以計算圓周率,不過資料量就一定很大,因為這是一個概率問題,資料量越大就越精確。


對於上面介紹的第二種計算圓周率的方法:


任意兩正數x和y,使得他們滿足0<x<1,0<y<1,且x+y>1的概率為(π-2)/4。</x<1,0<y<1,且x+y>


受馬修方法的啟發,因為你的資料都必須在0到1之間,所以你也可以得到一些角度的資料,計算他們的正弦值,從而計算圓周率。將數學性質放置於生活中,才是數學的魅力所在。

你認識的π有什麼計算方法呢?歡迎給小編留言。

如果覺得本文不錯,請幫忙點選最下方的廣告,算是給小編鼓勵了。


參考文獻:三思科學

∑編輯 | Gemini

源 | 校苑數模

640?wx_fmt=png

演算法數學之美微信公眾號歡迎賜稿

稿件涉及數學、物理、演算法、計算機、程式設計等相關領域,經採用我們將奉上稿酬。

投稿郵箱:math_alg@163.com

相關文章