Wednesday, March 14, 2007

Happy Pi-Day

下面是以前收藏的一个计算Pi值的程序代码,纪念一下Pi-Day
-------------------------------------------------------
#include <stdio.h>
long a=10000,b,c=2800,d,e,f[2801],g;
int main() {
for(;b-c;f[b++]=a/5);
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
return 0;
}
-------------------------------------------------------
据说该程序算法的数学原理是下面这个跟Pi相关的级数
π/2 = 1 + 1/3 + (1*2)/(3*5) + (1*2*3)/(3*5*7) + ...
有兴趣的朋友可以分析一下代码。

No comments: