中国分布式计算论坛

 找回密码
 新注册用户
搜索
查看: 5781|回复: 4

3月14,π日快乐

[复制链接]
发表于 2007-3-14 08:39:38 | 显示全部楼层 |阅读模式
圆周率

圆周率是指平面上圆的周长与直径之比 (ratio of the circumference of a circle to the diameter) 。用符号π表示。中国古代有圆率、圆率、周等名称。(π≈3.14)

古希腊欧几里得《几何原本》(约公元前3世纪初)中提到圆周率是常数,中国古算书《周髀算经》(约公元前2世纪)中有「径一而周三」的记载,也认为圆周率是常数。历史上曾采用过圆周率的多种近似值,早期大都是通过实验而得到的结果,如古埃及纸草书(约公元前1700)中取π=(4/3)^4≒3.1604 。第一个用科学方法寻求圆周率数值的人是阿基米得 ,他在《圆的度量》(公元前3世纪)中用圆内接和外切正多边形的周长确定圆周长的上下界,从正六边形开始,逐次加倍计算到正96边形,得到(3+(10/71)) < π < (3+(1/7)) ,开创了圆周率计算的几何方法(亦称古典方法,或 阿基米得方法),得出精确到小数点后两位的π值。

中国数学家刘徽在注释《九章算术》时(263年)只用圆内接正多边形就求得π的近似值,也得出精确到两位小数的π值,他的方法被后人称为割圆术。南北朝时代的数学家祖冲之进一步得出精确到小数点后 7位的π值(约5世纪下半叶),给出不足近似值3.1415926和过剩近似值3.1415927,还得到两个近似分数值,密率355/113和约率 22/7。其中的密率在西方直到1573才由德国人奥托得到,1625年发表于荷兰工程师安托尼斯的著作中,欧洲称之为安托尼斯率。阿拉伯数学家卡西在 15世纪初求得圆周率17位精确小数值,打破祖冲之保持近千年的纪录。德国数学家柯伦于1596年将π值算到20位小数值,后投入毕生精力,于1610年算到小数后35位数,该数值被用他的名字称为鲁道夫数。

1579年法国数学家韦达给出π的第一个解析表达式

此后,无穷乘积式、无穷连分数、无穷级数等各种π 值表达式纷纷出现,π值计算精度也迅速增加。1706 年英国数学家梅钦计算π值突破100位小数大关。1873 年另一位英国数学家尚可斯将π值计算到小数点后707位,可惜他的结果从528位起是错的。到1948年英国的弗格森和美国的伦奇共同发表了π的808位小数值,成为人工计算圆周率值的最高纪录。

电子计算机的出现使π值计算有了突飞猛进的发展。1949年美国马里兰州阿伯丁的军队弹道研究实验室首次用计算机(ENIAC)计算π值,一下子就算到2037位小数,突破了千位数。1989年美国哥伦比亚大学研究人员用克雷-2型和IBM-VF型巨型电子计算机计算出 π值小数点后4.8亿位数,后又继续算到小数点后10.1 亿位数,创下新的纪录。

除π的数值计算外,它的性质探讨也吸引了众多数学家。1761年瑞士数学家兰伯特第一个证明π是无理数。1794年法国数学家勒让德又证明了π2也是无理数。到1882年德国数学家林德曼首次证明了π是超越数,由此否定了困惑人们两千多年的「化圆为方」尺规作图问题。还有人对π的特征及与其它数字的联系进行研究。如1929年苏联数学家格尔丰德证明了eπ 是超越数等等。

计算圆周率

古今中外,许多人致力于圆周率的研究与计算。为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血。十九世纪前,圆周率的计算进展相当缓慢,十九世纪后,计算圆周率的世界纪录频频创新。整个十九世纪,可以说是圆周率的手工计算量最大的世纪。进入二十世纪,随着计算机的发明,圆周率的计算有了突飞猛进。借助于超级计算机,人们已经得到了圆周率的2061亿位精度。历史上最马拉松式的计算,其一是德国的Ludolph Van Ceulen,他几乎耗尽了一生的时间,计算到圆的内接正262边形,于1609年得到了圆周率的35位精度值,以至于圆周率在德国被称为Ludolph 数;其二是英国的William Shanks,他耗费了15年的光阴,在1874年算出了圆周率的小数点后707位。可惜,后人发现,他从第528位开始就算错了。把圆周率的数值算得这么精确,实际意义并不大。现代科技领域使用的圆周率值,有十几位已经足够了。如果用Ludolph Van Ceulen算出的35位精度的圆周率值,来计算一个能把太阳系包起来的一个圆的周长,误差还不到质子直径的百万分之一。以前的人计算圆周率,是要探究圆周率是否循环小数。自从1761年Lambert证明了圆周率是无理数,1882年Lindemann证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。现在的人计算圆周率, 多数是为了验证计算机的计算能力,还有,就是为了兴趣。

圆周率的计算方法

古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正 3072边形得到5位精度;Ludolph Van Ceulen用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其它公式和由这些经典公式衍生出来的公式,就不一一列举了。

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年发表,它四次收敛于圆周率。

5、 Bailey-Borwein-Plouffe算法


这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。1997年,Fabrice Bellard找到了一个比BBP快40%的公式:


圆周率的计算历史

时间       纪录创造者            小数点后位数

前2000        古埃及人                    1

前1200          中国                      1

前500           圣经                      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世纪后

年   月             纪录创造者             所用机器         小数点后位数

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                   Guilloud                             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

圆周率的最新计算纪录

1、新世界纪录

圆周率的最新计算纪录由两位日本人Daisuke Takahashi和Yasumasa Kanada所创造。他们在日本东京大学的IT中心,以Gauss-Legendre算法编写程序,利用一台每秒可执行一万亿次浮点运算的超级计算机,从日本时间1999年9月18日19:00:52起,计算了37小时21分04秒,得到了圆周率的206,158,430,208(3*236)位十进制精度,之后和他们于1999年6月27日以Borwein四次迭代式计算了46小时得到的结果相比,发现最后45位小数有差异,因此他们取小数点后 206,158,430,000位的?值为本次计算结果。这一结果打破了他们于1999年4月创造的68,719,470,000位的世界纪录。

2、最后20位

圆周率小数点后206,158,430,000位的最后20位为:

22144 96687 55157 30964

3、π小数点后2000亿位中各数字出现的次数:

0 : 20000030841    1 : 19999914711

2 : 20000136978    3 : 20000069393

4 : 19999921691    5 : 19999917053

6 : 19999881515    7 : 19999967594

8 : 20000291044    9 : 19999869180

4、一些有趣的数字序列在p小数点后出现的位置

数字序列     出现的位置

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
发表于 2007-3-14 08:58:58 | 显示全部楼层
对圆周率有了新的了解.不过还是不知道3月14号为什么是它的生日?
发表于 2007-3-14 09:04:03 | 显示全部楼层
3.14
发表于 2007-3-14 18:09:44 | 显示全部楼层
大家别忘了也是  爱因斯坦的诞生日哦
发表于 2007-3-14 18:20:05 | 显示全部楼层

回复 #4 zglloo 的帖子

怪不得爱因斯坦那么聪明~~~原来是因为是在Pi日出生的~~~
您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

小黑屋|手机版|Archiver|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2021-8-1 12:29

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表