計(jì)算圓周率

編輯: 逍遙路 關(guān)鍵詞: 高中數(shù)學(xué) 來源: 高中學(xué)習(xí)網(wǎng)

古今中外,許多人致力于圓周率的研究與計(jì)算。為了計(jì)算出圓周率的越來越好的近似值,一代代的數(shù)學(xué)家為這個(gè)神秘的數(shù)貢獻(xiàn)了無數(shù)的時(shí)間與心血。十九世紀(jì)前,圓周率的計(jì)算進(jìn)展相當(dāng)緩慢,十九世紀(jì)后,計(jì)算圓周率的世界紀(jì)錄頻頻創(chuàng)新。整個(gè)十九世紀(jì),可以說是圓周率的手工計(jì)算量最大的世紀(jì)。進(jìn)入二十世紀(jì),隨著計(jì)算機(jī)的發(fā)明,圓周率的計(jì)算有了突飛猛進(jìn)。借助于超級(jí)計(jì)算機(jī),人們已經(jīng)得到了圓周率的2061億位精度。歷史上最馬拉松式的計(jì)算,其一是德國的Ludolph Van Ceulen,他幾乎耗盡了一生的時(shí)間,計(jì)算到圓的內(nèi)接正262邊形,于1609年得到了圓周率的35位精度值,以至于圓周率在德國被稱為Ludolph數(shù);其二是英國的William Shanks,他耗費(fèi)了15年的光陰,在1874年算出了圓周率的小數(shù)點(diǎn)后707位?上,后人發(fā)現(xiàn),他從第528位開始就算錯(cuò)了。把圓周率的數(shù)值算得這么精確,實(shí)際意義并不大,F(xiàn)代科技領(lǐng)域使用的圓周率值,有十幾位已經(jīng)足夠了。如果用Ludolph Van Ceulen算出的35位精度的圓周率值,來計(jì)算一個(gè)能把太陽系包起來的一個(gè)圓的周長,誤差還不到質(zhì)子直徑的百萬分之一。以前的人計(jì)算圓周率,是要探究圓周率是否循環(huán)小數(shù)。自從1761年Lambert證明了圓周率是無理數(shù),1882年Lindemann證明了圓周率是超越數(shù)后,圓周率的神秘面紗就被揭開了,F(xiàn)在的人計(jì)算圓周率, 多數(shù)是為了驗(yàn)證計(jì)算機(jī)的計(jì)算能力,還有,就是為了興趣。

圓周率的計(jì)算方法

古人計(jì)算圓周率,一般是用割圓法。即用圓的內(nèi)接或外切正多邊形來逼近圓的周長。Archimedes用正96邊形得到圓周率小數(shù)點(diǎn)后3位的精度;劉徽用正3072邊形得到5位精度;Ludolph Van Ceulen用正262邊形得到了35位精度。這種基于幾何的算法計(jì)算量大,速度慢,吃力不討好。隨著數(shù)學(xué)的發(fā)展,數(shù)學(xué)家們?cè)谶M(jìn)行數(shù)學(xué)研究時(shí)有意無意地發(fā)現(xiàn)了許多計(jì)算圓周率的公式。下面挑選一些經(jīng)典的常用公式加以介紹。除了這些經(jīng)典公式外,還有很多其他公式和由這些經(jīng)典公式衍生出來的公式,就不一一列舉了。

1、 Machin公式


這個(gè)公式由英國天文學(xué)教授John Machin于1706年發(fā)現(xiàn)。他利用這個(gè)公式計(jì)算到了100位的圓周率。Machin公式每計(jì)算一項(xiàng)可以得到1.4位的十進(jìn)制精度。因?yàn)樗挠?jì)算過程中被乘數(shù)和被除數(shù)都不大于長整數(shù),所以可以很容易地在計(jì)算機(jī)上編程實(shí)現(xiàn)。

Machin.c 源程序

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

2、 Ramanujan公式


1914年,印度數(shù)學(xué)家Srinivasa Ramanujan在他的論文里發(fā)表了一系列共14條圓周率的計(jì)算公式,這是其中之一。這個(gè)公式每計(jì)算一項(xiàng)可以得到8位的十進(jìn)制精度。1985年Gosper用這個(gè)公式計(jì)算到了圓周率的17,500,000位。

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

這個(gè)公式被稱為Chudnovsky公式,每計(jì)算一項(xiàng)可以得到15位的十進(jìn)制精度。1994年Chudnovsky兄弟利用這個(gè)公式計(jì)算到了4,044,000,000位。Chudnovsky公式的另一個(gè)更方便于計(jì)算機(jī)編程的形式是:

3、AGM(Arithmetic-Geometric Mean)算法

Gauss-Legendre公式:

初值:

重復(fù)計(jì)算:

最后計(jì)算:

這個(gè)公式每迭代一次將得到雙倍的十進(jìn)制精度,比如要計(jì)算100萬位,迭代20次就夠了。1999年9月Takahashi和Kanada用這個(gè)算法計(jì)算到了圓周率的206,158,430,000位,創(chuàng)出新的世界紀(jì)錄。

4、Borwein四次迭代式:

初值:

重復(fù)計(jì)算:  

最后計(jì)算:

這個(gè)公式由Jonathan Borwein和Peter Borwein于1985年發(fā)表,它四次收斂于圓周率。

5、 Bailey-Borwein-Plouffe算法

 

這個(gè)公式簡(jiǎn)稱BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同發(fā)表。它打破了傳統(tǒng)的圓周率的算法,可以計(jì)算圓周率的任意第n位,而不用計(jì)算前面的n-1位。這為圓周率的分布式計(jì)算提供了可行性。1997年,F(xiàn)abrice Bellard找到了一個(gè)比BBP快40%的公式:

圓周率的計(jì)算歷史

時(shí)間

紀(jì)錄創(chuàng)造者

小數(shù)點(diǎn)后位數(shù)

前2000

古埃及人

1

前1200

中國

1

前500

圣經(jīng)

1

前250

Archimedes

3

263

劉徽

5

480

祖沖之

7

1429

Al-Kashi

14

1593

Romanus

15

1596

Ludolph Van Ceulen

20

1609

Ludolph Van Ceulen

35

1699

Sharp

71

1706

John Machin

100

1719

De Lagny

127(112位正確)

1794

Vega

140

1824

Rutherford

208(152位正確)

1844

Strassnitzky & Dase

200

1847

Clausen

248

1853

Lehmann

261

1853

Rutherford

440

1874

William Shanks

707(527位正確)

20世紀(jì)后

紀(jì)錄創(chuàng)造者

所用機(jī)器

小數(shù)點(diǎn)后位數(shù)

1946

 

Ferguson

 

620

1947

1

Ferguson

 

710

1947

9

Ferguson & Wrench

 

808

1949

 

Smith & Wrench

 

1,120

1949

 

Reitwiesner et al

ENIAC

2,037

1954

 

Nicholson & Jeenel

NORC

3,092

1957

 

Felton

Pegasus

7,480

1958

1

Genuys

IBM 704

10,000

1958

5

Felton

Pegasus

10,021

1959

 

Guilloud

IBM 704

16,167

1961

 

Shanks & Wrench

IBM 7090

100,265

1966

 

Guilloud & Filliatre

IBM 7030

250,000

1967

 

Guilloud & Dichampt

CDC 6600

500,000

1973

 

Guilloud & Bouyer

CDC 7600

1,001,250

1981

 

Miyoshi & Kanada

FACOM M-200

2,000,036

1982

 

Guiloud

 

2,000,050

1982

 

Tamura

MELCOM 900II

2,097,144

1982

 

Tamura & Kanada

HITACHI M-280H

4,194,288

1982

 

Tamura & Kanada

HITACHI M-280H

8,388,576

1983

 

Kanada, Yoshino & Tamura

HITACHI M-280H

16,777,206

1983

10

Ushiro & Kanada

HITACHI S-810/20

10,013,395

1985

10

Gosper

Symbolics 3670

17,526,200

1986

1

Bailey

CRAY-2

29,360,111

1986

9

Kanada & Tamura

HITACHI S-810/20

33,554,414

1986

10

Kanada & Tamura

HITACHI S-810/20

67,108,839

1987

1

Kanada, Tamura & Kubo et al

NEC SX-2

134,217,700

1988

1

Kanada & Tamura

HITACHI S-820/80

201,326,551

1989

5

Chudnovskys

CRAY-2 & IBM-3090/VF

480,000,000

1989

6

Chudnovskys

IBM 3090

525,229,270

1989

7

Kanada & Tamura

HITACHI S-820/80

536,870,898

1989

8

Chudnovskys

IBM 3090

1,011,196,691

1989

11

Kanada & Tamura

HITACHI S-820/80

1,073,741,799

1991

8

Chudnovskys

 

2,260,000,000

1994

5

Chudnovskys

 

4,044,000,000

1995

8

Takahashi & Kanada

HITACHI S-3800/480

4,294,967,286

1995

10

Takahashi & Kanada

 

6,442,450,938

1997

7

Takahashi & Kanada

 

51,539,600,000

1999

4

Takahashi & Kanada

 

68,719,470,000

1999

9

Takahashi & Kanada

HITACHI SR8000

206,158,430,000

圓周率的最新計(jì)算紀(jì)錄

1、新世界紀(jì)錄

圓周率的最新計(jì)算紀(jì)錄由兩位日本人Daisuke Takahashi和Yasumasa Kanada所創(chuàng)造。他們?cè)谌毡緰|京大學(xué)的IT中心,以Gauss-Legendre算法編寫程序,利用一臺(tái)每秒可執(zhí)行一萬億次浮點(diǎn)運(yùn)算的超級(jí)計(jì)算機(jī),從日本時(shí)間1999年9月18日19:00:52起,計(jì)算了37小時(shí)21分04秒,得到了圓周率的206,158,430,208(3*236)位十進(jìn)制精度,之后和他們于1999年6月27日以Borwein四次迭代式計(jì)算了46小時(shí)得到的結(jié)果相比,發(fā)現(xiàn)最后45位小數(shù)有差異,因此他們?nèi)⌒?shù)點(diǎn)后206,158,430,000位的?值為本次計(jì)算結(jié)果。這一結(jié)果打破了他們于1999年4月創(chuàng)造的68,719,470,000位的世界紀(jì)錄。

2、最后20位

圓周率小數(shù)點(diǎn)后206,158,430,000位的最后20位為:

22144 96687 55157 30964

3、 p小數(shù)點(diǎn)后2000億位中各數(shù)字出現(xiàn)的次數(shù):

0 : 20000030841 1 : 19999914711

2 : 20000136978 3 : 20000069393

4 : 19999921691 5 : 19999917053

6 : 19999881515 7 : 19999967594

8 : 20000291044 9 : 19999869180

4、一些有趣的數(shù)字序列在p小數(shù)點(diǎn)后出現(xiàn)的位置

數(shù)字序列

出現(xiàn)的位置

01234567891

26,852,899,245

41,952,536,161

99,972,955,571

102,081,851,717

171,257,652,369

01234567890

53,217,681,704

148,425,641,592

432109876543

149,589,314,822

543210987654

197,954,994,289

98765432109

123,040,860,473

133,601,569,485

150,339,161,883

183,859,550,237

09876543210

42,321,758,803

57,402,068,394

83,358,197,954

10987654321

89,634,825,550

137,803,268,208

152,752,201,245

27182818284

45,111,908,393

PC機(jī)上的計(jì)算

1、PiFast

目前PC機(jī)上流行的最快的圓周率計(jì)算程序是PiFast。它除了計(jì)算圓周率,還可以計(jì)算e和sqrt(2)。PiFast可以利用磁盤緩存,突破物理內(nèi)存的限制進(jìn)行超高精度的計(jì)算,最高計(jì)算位數(shù)可達(dá)240億位,并提供基于Fabrice Bellard公式的驗(yàn)算功能。

2、 PC機(jī)上的最高計(jì)算記錄

最高記錄

12,884,901,372位

時(shí)間

2000年10月10日

記錄創(chuàng)造者

Shigeru Kondo

所用程序

PiFast ver3.3

機(jī)器配置

Pentium III 1G, 1792M RAM,WindowsNT4.0,40GBx2(IDE,FastTrak66)

計(jì)算時(shí)間

1,884,375秒 (21.8天)

驗(yàn)算時(shí)間

29小時(shí)

圓周率小數(shù)點(diǎn)后1000位

1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679 8214808651 3282306647 0938446095 5058223172 5359408128 4811174502 8410270193 8521105559 6446229489 5493038196 4428810975 6659334461 2847564823 3786783165 2712019091 4564856692 3460348610 4543266482 1339360726 0249141273 7245870066 0631558817 4881520920 9628292540 9171536436 7892590360 0113305305 4882046652 1384146951 9415116094 3305727036 5759591953 0921861173 8193261179 3105118548 0744623799 6274956735 1885752724 8912279381 8301194912 9833673362 4406566430 8602139494 6395224737 1907021798 6094370277 0539217176 2931767523 8467481846 7669405132 0005681271 4526356082 7785771342 7577896091 7363717872 1468440901 2249534301 4654958537 1050792279 6892589235 4201995611 2129021960 8640344181 5981362977 4771309960 5187072113 4999999837 2978049951 0597317328 1609631859 5024459455 3469083026 4252230825 3344685035 2619311881 7101000313 7838752886 5875332083 8142061717 7669147303 5982534904 2875546873 1159562863 8823537875 9375195778 1857780532 1712268066 1300192787 6611195909 2164201989

圓周率的探索者

 

Archimedes (BC287 - BC212)

 祖沖之 (430 - 501)

 Ludolph van Ceulen (1540 - 1610)

 John Machin(1680 - 1751)

 Johann Heinrich Lambert (1728 - 1777)

 Adrien-Marie Legendre (1752 - 1833)

 Johann Carl Friedrich Gauss (1777 - 1855)

 Carl Louis Ferdinand von Lindemann (1852 - 1939)

 Srinivasa Ramanujan(1887 - 1920)

 ENIAC (1946)

 David & Gregory Chudnovsky

 David H. Bailey

 Jonathan M. Borwein

 Peter Borwein

 Simon Plouffe

 Fabrice Bellard (1973)


 Yasumasa Kanada

從左至右:Eugene Salamin,Yasumasa Kanada, David H. Bailey,William Gosper


本文來自:逍遙右腦記憶 http://m.yy-art.cn/gaozhong/196179.html

相關(guān)閱讀:在反思與創(chuàng)新過程中提高數(shù)學(xué)課堂教學(xué)效果