几除几等于π

如题所述

圆周率
目录·圆周率
·圆周率的历史
·圆周率的计算
·圆周率的计算方法
·圆周率的计算历史
·圆周率的最新计算纪录
·一些有趣的数字序列在π小数点后出现的位置
·PC机上的计算
·圆周率小数点后20000位
·G++编译器中的运算程序
·背圆周率的口诀
·圆周率打油诗这首诗的来历
·背圆周率小数点最多的人

圆周率

圆周率是指平面上圆的周长与直径之比 (ratio of the circumference of a circle to the diameter) 。用符号π(读音:pài)表示。中国古代有圆率、周率、周等名称。(在一般计算时π=3.14)

圆周率的历史

古希腊欧几里得《几何原本》(约公元前3世纪初)中提到圆周率是常数,中国古算书《周髀算经》( 约公元前2世纪)中有“径一而周三”的记载,也认为圆周率是常数。历史上曾采用过圆周率的多种近似值,早期大都是通过实验而得到的结果,如古埃及纸草书(约公元前1700)中取π=(4/3)^4≈3.1604 。第一个用科学方法寻求圆周率数值的人是阿基米德,他在《圆的度量》(公元前3世纪)中用圆内接和外切正多边形的周长确定圆周长的上下界,从正六边形开始,逐次加倍计算到正96边形,得到(3+(10/71))<π<(3+(1/7)) ,开创了圆周率计算的几何方法(亦称古典方法,或阿基米德方法),得出精确到小数点后两位的π值。
中国数学家刘徽在注释《九章算术》(263年)时只用圆内接正多边形就求得π的近似值,也得出精确到两位小数的π值,他的方法被后人称为割圆术。他用割圆术一直算到圆内接正192边形。
南北朝时代数学家祖冲之进一步得出精确到小数点后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位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其它公式和由这些经典公式衍生出来的公式,就不一一列举了。以下公式见http://www.jason314.com/palgorithm.htm
1、 Machin公式

[这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。
还有很多类似于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%的公式
G++编译器中的运算程序
微机WindowsXP中Dev-cpp(G++编译器)中的运算程序(20000位)(C++)

#include <cstdlib>
#include <iostream>
#include <fstream>
#define N 20010
using namespace std;
void mult (int *a,int b,int *s)
{
for (int i=N,c=0;i>=0;i--)
{
int y=(*(a+i))*b+c;
c=y/10;
*(s+i)=y%10;
}
}
void divi (int *a,int b,int *s)
{
for (int i=0,c=0;i<=N;i++)
{
int y=(*(a+i))+c*10;
c=y%b;
*(s+i)=y/b;
}
}
void incr(int *a,int *b,int *s)
{
for (int i=N,c=0;i>=0;i--)
{
int y=(*(a+i))+(*(b+i))+c;
c=y/10;
*(s+i)=y%10;
}
}
bool eqs(int *a,int *b)
{
int i=0;
while (((*(a+i))==(*(b+i)))&&(i<=N)) i++;
return i>N;
}
int main(int argc, char *argv[])
{
int lpi[N+1],lls[N+1],lsl[N+1],lp[N+1];

int *pi=lpi,*ls=lls,*sl=lsl,*p=lp;
for (int i=0;i<=N;i++)*(pi+i)=*(ls+i)=*(sl+i)=*(p+i)=0;
memset(pi,0,sizeof(pi));
memset(ls,0,sizeof(ls));
memset(sl,0,sizeof(sl));
memset(p,0,sizeof(p));
*pi=*ls=*sl=1;
for (int i=1;true;i++)
{
mult(ls,i,sl);
divi(sl,2*i+1,ls);
incr(pi,ls,p);
if (eqs(pi,p)) break;
int *t;
t=p;
p=pi;
pi=t;
if (i%50==0) cout << i << " ";
}
cout << endl;
mult(p,2,pi);
ofstream fout("pi.txt");
fout << *pi << ".";
for (int i=1;i<=N;i++)
{
fout << *(pi+i);
if (i%10==0) fout << " ";
if (i%80==0) fout << endl;
}
return EXIT_SUCCESS;
}

注:①运行时会有数据弹出,那是无关紧要的,只为了加快了感觉速度;
②最后的txt文本里有20010位,其中最后10位可能是错的。
③程序中的<,>是大写的请改成小写。

背圆周率的口诀

3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6
山颠一寺一壶酒, 尔乐。苦煞吾, 把酒吃,酒杀尔, 杀不死,乐尔乐

4 3 3 8 3 2 7 9 5 0 2 8 8 4 1 9 7 1 6 9 3 9 9 3 7
死珊珊,霸占二妻。 救我灵儿吧! 不只要救妻, 一路救三舅, 救三妻。

5 1 0 5 8 2 0 9 7 4 9 4 4 5 9 2 3 0 7
我一拎我爸,二拎舅 (其实就是撕我舅耳) 三拎妻。

8 1 6 4 0 6 2 8 6 2 0 8 9 9 8 6
不要溜!司令溜, 儿不溜! 儿拎爸, 久久不溜!

2 8 0 3 4 8 2 5 3 4 2 1 1 7 0 6 7 9 8
饿不拎 闪死爸 而我真是饿矣! 要吃人肉 ?吃酒吧!

圆周率打油诗这首诗的来历
有个教书先生,喜欢喝酒,每次总是给学生留道题,就到私塾的后山上找山上的老和尚喝酒,这天,他给学生留了道题,就是背这个圆周率,然后自己提壶酒就到山上的庙里去了.圆周率位数这么多,不好背啊,其中有个聪明的学生就想出了一个办法,把圆周率编了个打油诗:山顶一寺一壶酒,尔乐苦煞吾,把酒吃;酒杀尔杀不死,乐尔乐.其实就是3.1415926535897932384626的谐音.先生一回来,学生居然都把这个给背了下来,很是奇怪,一想,就什么都明白了,原来是在讽刺他呀...

背圆周率小数点最多的人
一学生背圆周率至小数点后6万位
截至20日14时56分,西北农林科技大学硕士研究生吕超用24小时零4分钟,不间断无差错地背诵圆周率至小数点后67890位,从而刷新由一名日本学生于1995年创造的无差错背诵圆周率至小数点后42195位的吉尼斯世界纪录。

生于1982年11月的吕超,2001年由湖北省枣阳市考入西北农林科技大学生命科学2005年被推荐免试攻读本校的应用化学硕士学位。他有较强的记忆能力,特别擅长背诵和默写数字,通常记忆100位数字只需10分钟。吕超从4年前开始背诵圆周率,近1年来加紧准备,目前能够记住的圆周率位数超过9万位。在20日的背诵中,吕超背诵至小数点后67890位时将“0”背为“5”发生错误,挑战结束。

圆周率是一个无穷小数,到目前为止,专家利用超级电脑已计算圆周率到小数点后约100万兆位。据介绍,挑战背诵圆周率吉尼斯世界纪录的规则是:必须大声地背出;背诵过程中不能给予帮助或(视觉与听觉方面的)提示,也不能有任何形式的协助;背诵必须连续,两个数字之间的间隔不得超过15秒;背诵出错时可以更正,但更正必须是在说出下一个数字之前;任何错误(除非错误被立刻更正)都将使挑战失败。因此,吕超在背诵前进行了全面体检,并由家长签字同意,背诵过程中还使用了尿不湿和葡萄糖、咖啡、巧克力来解决上厕所和进食等生理问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-12
圆周率是指平面上圆的周长与直径之比 (ratio of the circumference of a circle to the diameter) 。用符号π(读音:pài)表示。中国古代有圆率、周率、周等名称。(在一般计算时π=3.14)
南北朝时代数学家祖冲之进一步得出精确到小数点后7位的π值(约5世纪下半叶),给出不足近似值3.1415926和过剩近似值3.1415927,还得到两个近似分数值,密率355/113和约率22/7。
除π的数值计算外,它的性质探讨也吸引了众多数学家。1761年瑞士数学家兰伯特第一个证明π是无理数。即它不能用m/n的形式表示(m,n为有理数)π=2π/2
第2个回答  2008-01-12
圆周长÷这个圆的直径=π

实际的圆周长与圆的直径很难量准,所以不可能具体地找到“几除几等于π ”,所以π 到底等于多少,谁也不知道,只知道它是一个无限不循环小数而已。
第3个回答  2008-01-12
圆周率是圆的周长与直径的比值
即约率:22/7=3.14285714285714^,
密率:355/113=3.1415920353982300