當前位置:編程學習大全網 - 編程語言 - π的計算方法

π的計算方法

1、 Machin公式

[這個公式由英國天文學教授John Machin於1706年發現。他利用這個公式計算到了100位的圓周率。Machin公式每計算壹項可以得到1.4位的十進制精度。因為它的計算過程中被乘數和被除數都不大於長整數,所以可以很容易地在計算機上編程實現。

Machin.c 源程序

還有很多類似於Machin公式的反正切公式。在所有這些公式中,Machin公式似乎是最快的了。雖然如此,如果要計算更多的位數,比如幾千萬位,Machin公式就力不從心了。下面介紹的算法,在PC機上計算大約壹天時間,就可以得到圓周率的過億位的精度。這些算法用程序實現起來比較復雜。因為計算過程中涉及兩個大數的乘除運算,要用FFT(Fast Fourier Transform)算法。FFT可以將兩個大數的乘除運算時間由O(n2)縮短為O(nlog(n))。

2、 Ramanujan公式

1914年,印度數學家Srinivasa Ramanujan在他的論文裏發表了壹系列***14條圓周率的計算公式,這是其中之壹。這個公式每計算壹項可以得到8位的十進制精度。1985年Gosper用這個公式計算到了圓周率的17,500,000位。

1989年,David & Gregory Chudnovsky兄弟將Ramanujan公式改良成為:

這個公式被稱為Chudnovsky公式,每計算壹項可以得到15位的十進制精度。1994年Chudnovsky兄弟利用這個公式計算到了4,044,000,000位。Chudnovsky公式的另壹個更方便於計算機編程的形式是:

3、AGM(Arithmetic-Geometric Mean)算法

Gauss-Legendre公式:

這個公式每叠代壹次將得到雙倍的十進制精度,比如要計算100萬位,叠代20次就夠了。1999年9月Takahashi和Kanada用這個算法計算到了圓周率的206,158,430,000位,創出新的世界紀錄。

4、Borwein四次叠代式:

這個公式由Jonathan Borwein和Peter Borwein於1985年發表,它四次收斂於圓周率。

這個公式簡稱BBP公式,由David Bailey, Peter Borwein和Simon Plouffe於1995年***同發表。它打破了傳統的圓周率的算法,可以計算圓周率的任意第n位,而不用計算前面的n-1位。這為圓周率的分布式計算提供了可行性。1997年,Fabrice Bellard找到了壹個比BBP快40%的公式:

  • 上一篇:北京java培訓分享Java工程師的工資如何
  • 下一篇:寫了壹個串口使能事件的判斷函數,不報錯,但是不能正常運行?求大神幫忙!!
  • copyright 2024編程學習大全網