http://tieba.baidu.com/f?kz=57097916
我们需要精度多高的pi? 十位小数就足以使地球周界准确到一英寸以内,三十位小数便能使整个可见宇宙的四周准确到连最强大的显微镜都不能分辨的一个量。如果用35位小数的pi计算一个能把太阳系包围起来的圆的周长,误差还不到质子直径的百万分之一。 pi当中的统计: 在60亿数字中已出现连在一起的8个8;9个7;10个6;小数点后第710150位与3204765位开始,均连续出现了七个3;小数点后第2747956位起,出现了有趣的数列876543210;还有更有趣的数列123456789也出现了。
pi能无限计算下去吗? 根据朱达诺夫斯基的估计,我们最多算1077位。 pi当中数字的分布: 数学家弗格森最早有过这种猜想:在 π 的数值式中各数码出现的概率相同。正是他的这个猜想为发现和纠正向克斯计算 π 值的错误立下了汗马功劳。然而,猜想并不等于现实。弗格森想验证它,却无能为力。后人也想验证它,也是苦于已知的 π 值的位数太少。但实际结果显示,每一个数字出现的概率都差不多是1/10,有的多一点,有的少一点。虽然有些偏差,但都在1/10000之内。
搞怪的pi计算方法: 蒲丰提出了用实验方法计算 π 。这个实验方法的操作很简单:找一根粗细均匀,长度为 d 的细针,并在一张白纸上画上一组间距为 l 的平行线(方便起见,常取 l = d/2),然后一次又一次地将小针任意投掷在白纸上。这样反复地投多次,数数针与任意平行线相交的次数,于是就可以得到 π 的近似值。因为蒲丰本人证明了针与任意平行线相交的概率为 p = 2l/πd 。利用这一公式,可以用概率方法得到圆周率的近似值。在一次实验中,他选取 l = d/2 ,然后投针2212次,其中针与平行线相交704次,这样求得圆周率的近似值为 2212/704 = 3.142。当实验中投的次数相当多时,就可以得到 π 的更精确的值。
在用概率方法计算 π 值中还要提到的是:R·查特在1904年发现,两个随意写出的数中,互素的概率为6/π2。 英国伯明翰市阿斯顿大学计算机科学与应用数学系的罗伯特·马修斯利用夜空中亮星的分布来计算圆周率。马修斯从100颗最亮的星星中随意选取一对又一对进行分析,计算它们位置之间的角距。他检查了100万对因子,据此求得 π 的值约为3.12772。这个值与真值相对误差不超过5%。 我认为最美的pi计算公式:(附图) 韦达提出的公式,里面只有数字2和开方乘除加,就搞定了pi~~
一个足以让你吐血的计算400位pi的C程序:
int a=10000, z, c=2800, d, e, f[2801], g;
main()
{
for(; z-c; f[z++]=a/5); for(; d=0,g=c*2; c -=14,printf("%.4d",e+d/a),e=d%a) for(z=c; d+=f[z]*a,f[z]=d%--g,d/=g--,--z; d*=z);
}
理论上只要用大数算法扩了就能一直算下去。我在Palm上面实现的那个就是基于这个算法,没有扩,算到4680位(受到Palm平台32k数组的长度限制)。
这个程序的特点是:你抱着想看看算pi原理的希望来读这个程序,结果发现就是看了也还是看不懂
[
本帖最后由 ccpaging 于 2011-8-24 13:15 编辑 ].