圓周率計算的幾點體會

2021-04-25 03:24:31 字數 1867 閱讀 5428

pai(10000)_b,pai(10000)_c系列的基本演算法與評價

pai(10000)_b    (euler's fomula)

參考書目: 計算機程式設計經典題解/楊克昌.——北京:清華大學出版社,2007.12

公式原理: pai/2  = 1 + 1/(1*3) + (1*2)/(1*3*5) + (1*2*3)/(1*3*5*7) + …… +(n!)/(1*3*5*……*(2*n+1))

= 1 + (1/3)(1 + (2/5)(1 + …… +((n-1)/(2*n-1))(1 + (n/(2*n+1)))……))

誤差分析: 第n項後rnpai(10000)_c (machin's fomula)

參考書目: 程式演算法與技巧精選/郭繼展,郭勇,蘇輝.——北京:機械工業出版社,2008.4

公式及原理: arctg(x)=x-(x^3)/3+(x^5)/5-(x^7)/7+……

pai=16*arctg(1/5)-4*arctg(1/239)

(5*5=25,239*239=57121)

……pai=(80/25-965/57121)-(1/3)(80/(25^2)-965/(57121^2))+(1/5)(80/(25^3)-965/(57121^3))-(1/7)(80/(25^4)-965/(57121^4))+……

誤差分析: 執行至最後i=14317

abs(e1)=(1/14317)(80/(25^7159)-965/(57121^7159))<(1/14317)(956/(25^7159))<10^(-10008)

abs(e2)=7158*(10^(-10005))<10^(-10001)

無限位計算: 4位數存乙個int。

評價:  好,收斂很快。我編制輸出10000位的程式,我只多計算了5位,就得到正確結果。

付**:

void main()

for(i=0;i<=x+5;i++)

for(c=1,j=n;j>=1;j--)

a[x+5]=c/d;

for(b=0,i=x+5;i>=0;i--)

a[0]++;

c=a[0];

}for(b=0,i=x+5;i>=0;i--)

printf("pai=%d./n",a[0]);

for(l=0,i=1;i<=x;i++)

scanf("%*c%*c");

}void main(),b[2002]=,c[2002]=,r=100000,sa,sb,sc,d,g;

long w=2001,m=0,q=-1,k=0,i=1,n,j,digit[5],oo;

file *fp;

b[1]=8000000,c[1]=95600000;

fp=fopen("pai_10000.dat","w");

t1: q=-q;sa=sb=sc=0;

t2: if(m>w)

goto t3;

if(c[m]==0)

for(j=m;j<=w;j++)

t3: if(k>w)

goto t4;

if(b[k]==0)

for(j=k;j<=w;j++)

i+=2;

goto t1;

t4: n=0;

for(j=w;j>=1;j--)

else

}printf("pai=%ld./n",n);

fprintf(fp,"pai=%d./n",n);

for(j=1;j=0;oo--)

for(oo=0;oo<5;oo++)

if(j%10==0)

else if(j%2==0)

}fclose(fp);

scanf("%*c");

}

7 15 計算圓周率

7 15 計算圓周率 15 分 根據下面關係式,求圓周率的值,直到最後一項的值小於給定閾值。2 1 1 3 2 3 5 3 3 5 7 n 3 5 7 2 n 1 輸入格式 輸入在一行中給出小於1的閾值。輸出格式 在一行中輸出滿足閾值條件的近似圓周率,輸出到小數點後6位。輸入樣例 0.01 輸出樣例...

7 15 計算圓周率

學到翁愷老師 c語言程式設計 第八周了,來pta做點習題練習 題目是 用圓周率的關係式,求圓周率的值,直到最後一項的值小於給定閾值。2 1 3 1 3 5 2 3 5 7 3 3 5 7 2n 1 n 輸入格式 輸入在一行中給出小於1的閾值。輸出格式 在一行中輸出滿足閾值條件的近似圓周率,輸出到小數...

《計算圓周率》python

題目 歷史上有許多計算圓周率pai的公式,其中,格雷戈里和萊布尼茨發現了下面的公式 pai 4 1 1 3 1 5 1 7 這個公式簡單而優美,但美中不足,它收斂的太慢了。如果我們四捨五入保留它的兩位小數,那麼 累積1項是 4.00 累積2項是 2.67 累積3項是 3.47 請你寫出它累積100項...