计算圆周率Pi(π)值,精确到小数点后10000位_第1页
计算圆周率Pi(π)值,精确到小数点后10000位_第2页
计算圆周率Pi(π)值,精确到小数点后10000位_第3页
计算圆周率Pi(π)值,精确到小数点后10000位_第4页
计算圆周率Pi(π)值,精确到小数点后10000位_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算圆周率i()值,精确到小数点后10000位只需要30多句代码!(浏览77154次)VictorChen,(C+爱好者)大家都知道=314152无穷多位,历史上很多人都在计算这个数,一直认为是一个非常复杂的问题。现在有了电脑,这个问题就简单了。电脑可以利用级数计算出很多高精度的值,有关级数的问题请参考高等数学,以下是比较有名的有关的级数:TOC o 1-5 h z7T224466=XXXXXX21335577Td11212323353577Fd1111=1+.435797F1111x31+x+6223x252x45x2J旁=1+界+歹+尹+其中有些计算起来很复杂,我们可以选用第三个,比较简单

2、,并且收敛的非常快。因为计算值,而这个公式是计算/2的,我们把它变形:=2+2/3+2/3*2/5+2/3*2/5*3/7+对于级数,我们先做个简单测试,暂时不要求精度:用C+Builder新建一个工程,在Form上放一个Memo1和一个Button1,在Button1的OnClick事件写:void_fastcallTForm1:Button1Click(TObject*Sender)doublex=2,z=2;inta=1,b=3;while(z1e-15)z=z*a/b;x+=z;a+;按Button1在Memo1显示出执行结果:Pi=3.1415926535898这个程序太简单了,而且

3、double的精度很低,只能计算到小数点后10几位。把上面的程序改造一下,让它精确到小数点后面1000位再测试一下:在Form上再放一个按钮Button2,在这个按钮的OnClick事件写:void_fastcallTForml:Button2Click(TObject*Sender)constARRSIZE=1010,DISPCNT=1000;/定义数组大小,显示位数charxARRSIZE,zARRSIZE;x0 x1.x2x3x4.xARRSIZE-1inta=1,b=3,c,d,Run=1,Cnt=0;memset(x,0,ARRSIZE);memset(z,O,ARRSIZE);x1

4、=2;z1=2;while(Run&(+Cnt0;i-)c=zi*a+d;zi=c%10;d=c/10;/z/=b;d=0;for(inti=0;iARRSIZE;i+)c=zi+d*10;zi=c/b;d=c%b;按Button2执行结果:Pi=03.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852

5、110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188

6、575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297

7、80499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989这下心理有底了,是不是改变数组大小就可以计算更多位数呢?答案是肯定的。如果把定义数组大小和显示位数改为:constARRSIZE=10100,DI

8、SPCNT=10000;/定义数组大小,显示位数执行结果精度可达10000位:Pi=03.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648

9、566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943

10、702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010

11、00313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151.限于篇幅,这里就省略了,还是留给你自己来算吧!50201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678提高精度的原理:以上程序的原

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论