圆周率π的计算方法

圆周率π的计算方法

ID:8997238

大小:121.00 KB

页数:8页

时间:2018-04-14

圆周率π的计算方法_第1页
圆周率π的计算方法_第2页
圆周率π的计算方法_第3页
圆周率π的计算方法_第4页
圆周率π的计算方法_第5页
资源描述:

《圆周率π的计算方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、圆周率π的计算方法圆周率的计算方法古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;LudolphVanCeulen用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。1、 Machin公式这个公式由英国天文学教授JohnMachin于1706年发现。他利用这个公式计算到了100位的圆

2、周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。用马青公式计算Pi至小数点后100位程序  programPi_Value;  {$APPTYPECONSOLE}  //将Pi计算精确小数点后100位  //Machin公式8  //Pi=16arctan(1/5)-4arctan(1/239)  uses  SysUtils;  const  N=100;  S=2*N+50;  aNum=5;  bNum=

3、239;  type  Num=array[1..S]ofbyte;  //初始化数组  procedureAZero(vararr:Num);  var  i:smallint;  begin  fori:=1toSdo  arr:=0;  end;  //除法  procedureDivision(vararr:Num;constb:smallint);  var  c,y,i:smallint;  begin  c:=0;  fori:=1toSdo  begin  y:=arr+c*10;  c:=

4、ymodb;  arr:=ydivb;  end;  end;  //加法  procedureAddition(vararr:Num;constb:Num);  var  i,y,c:smallint;  begin  c:=0;  fori:=Sdownto1do8  begin  y:=arr+b+c;  ify>=10then  begin  c:=1;  arr:=y-10;  end  else  begin  c:=0;  arr:=y;  end;  end;  end;  //减法  pr

5、ocedureMinus(vararr:Num;constb:Num);  var  i,y,c:smallint;  begin  c:=0;  fori:=Sdownto1do  begin  y:=arr-b-c;  ify<0then  begin  c:=1;  arr:=10+y;  end  else  begin  c:=0;  arr:=y;  end;  end;  end;  var  tag:boolean;  a,b,Ra,Rb,t:Num;8  i,j:smallint;  be

6、gin  AZero(t);  Ra:=t;Rb:=t;  tag:=true;  writeln('计算中,请等待......');  fori:=1toNdo  begin  a:=t;b:=t;  a[1]:=16;b[1]:=4;  forj:=1toi*2-1do  begin  Division(a,aNum);  DiVision(b,bNum);  end;  Division(a,i*2-1);  Division(b,i*2-1);  iftagthen  begin  tag:=fal

7、se;  Addition(Ra,a);  Addition(Rb,b);  end  else  begin  tag:=true;  Minus(Ra,a);  Minus(Rb,b);  end;  end;  Minus(Ra,Rb);  writeln('计算结果如下:');  writeln(Ra[1],'.');  fori:=2toN+1do  write(Ra);  readln;  End.8还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽

8、然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT(FastFourierTransform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。2、 Ramanujan公式1914年,印度数学家Sriniv

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。