四行算π的研究
寒泥吧
全部回复
仅看楼主
level 5
寒泥 楼主
long a=10000,b,c=2800,d,e,f[2801],g; 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);} 有人分析过,展开得到的程序是………… long b,c=2800,d,e,f[2801],g; int main(int argc,char* argv[]) { /*for(;b-c;)f[b++]=10000/5; for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/10000),e=d%10000) for(b=c;d+=f[b]*10000,f[b]=d%--g,d/=g--,--b;d*=b);*/ for(b=0;b
0) { d=0; for(b=c;b>0;b--) { d*=b; d+=f[b]*10; f[b]=d%(b*2-1); d/=(b*2-1); } c-=1; printf("%d",(e+d/10)%10); e=d%10; } return 0; } 这pi代码的计算数学公式是…… f(1)=1 f(n+1)=f(n)*n/(2*n+1) PI/2=f(1)+f(2)+f(3)+.....+f(n) n->无穷大。 或: PI/2 = 1 + 1/3 + (1*2)/(3*5) + (1*2*3)/(3*5*7) + (1*2*3*4)/(3*5*7*9)+... …………………………………………………………………… 有兴趣的朋友可以自己试试,不过可以告诉大家,在不同的编译条件下得到的结果可能不同,i++与++i的诧异……………… 下面有个结果的例子: 314
15926535897
932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865
13282306647
0938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482
13393607260
2491412737245870066063
15588174881
5209209628292540917
15364367892
59036001
13305305488
2046652
13841469519
4
15116094330
57270365759591953092
18611738193
26117931051
18548074462
37996274956735
18857527248
91227938
18301194912
983367336244065664308602
13949463952
247371907021798609437027705392171762931767523846748
18467669405
13200056812714526356082778577
13427577896
091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344
18159813629
77477
13099605187
0721
13499999983
729780499510597317328160963185
2005年08月14日 06点08分 1
level 5
寒泥 楼主
有兴趣的可以用vb写写看……
2005年08月14日 09点08分 2
1