古人计算圆周率公式一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长Archimedes用正96边形得到圆周率公式小数点后3位的精度;刘徽用正3072边形得到5位精度;Ludolph Van Ceulen用正262边形得到了35位精度。这种基于几何的算法计算量大速度慢,吃力不讨好随着数学的发展,数学家们在进行数学研究时有意无意地发现了許多计算圆周率公式的公式下面挑选一些经典的常用公式加以介绍。除了这些经典公式外还有很多其它公式和由这些经典公式衍生出來的公式,就不一一列举了
[这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率公式Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数所以可以很容易地在计算机上编程实现。
还有很多类似于Machin公式的反正切公式在所有这些公式中,Machin公式似乎是最快的了虽然如此,如果要计算更多的位数比如几千万位,Machin公式就力不从心了下面介紹的算法,在PC机上计算大约一天时间就可以得到圆周率公式的过亿位的精度。这些算法用程序实现起来比较复杂因为计算过程中涉及兩个大数的乘除运算,要用FFT(Fast Fourier Transform)算法FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。
1914年印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共14条圆周率公式的计算公式。这个公式每计算一项可以得到8位的十进制精度1985年Gosper用这个公式计算到了圆周率公式的17,500,000位。
这个公式每迭代┅次将得到双倍的十进制精度比如要计算100万位,迭代20次就够了1999年9月Takahashi和Kanada用这个算法计算到了圆周率公式的206,158,430,000位,创出新的世界纪录
这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表它打破了传统的圆周率公式的算法,可以计算圆周率公式的任意第n位而不用计算前面的n-1位。这为圆周率公式的分布式计算提供了可行性1997年,Fabrice Bellard找到了一个比BBP快40%的公式:
古人都是用的 多变形 细分 算的
可以用一个概率的算法在平面坐标系中
取一个2*2的正方形,里面相切一个半径为1的圆;
—————— === ——— 其中 π 为圆面积4为正方形面积
当试验的点趋向与无穷是,π越接近。