C语言程序设计,用级数计算圆周率的级数展开式π


大家都知道π=3.1415926……无穷多位, 历史仩很多人都在计算这个数, 一直认为是一个非常复杂的问题现在有了电脑, 这个问题就简单了。
电脑可以利用级数计算出很多高精度的值, 有關级数的问题请参考《高等数学》,以下是比较有名的有关π的级数:

这个程序太简单了, 而且 double 的精度很低, 只能计算到小数点后 10 几位
把上面的程序改造一下, 让它精确到小数点后面 1000 位再测试一下:

这下心理有底了, 是不是改变数组大小就可以计算更多位数呢?答案是肯定的
如果把定義数组大小和显示位数改为:

执行结果精度可达 10000 位:

... 限于篇幅, 这里就省略了, 还是留给你自己来算吧!

以上程序的原理是利用数组把计算结果保存起来, 其中数组每一项保存10进制数的一位,
小数点定位在数组第1个数和第二个数之间, 即小数点前面2位整数, 其余都是小数位。

利用电脑模拟四則运算的笔算方法来实现高精度的数据计算,没想到最原始的方法竟然是精度最高的

背景:看《逻辑的引擎》这本书嘚时候看到天才莱布尼茨的发现,本来是对电脑计算速度好奇的试了下运算时间蛮长,就是了100效果跟书本不一样。记录一下

* 背景:书籍《逻辑的引擎》,看到莱布尼茨级数就试了一下,结果跟书本不一样写得应该是没有问题的。

总结:我只是想冒个泡泡

我要回帖

更多关于 圆周率的级数展开式 的文章

 

随机推荐