円周率のわからないところ。

円周率の計算

π = 3.14159 26535 89793 ・・・

○円周率を半径1の円を内部から近似する正2^n角形の周囲の長さで求めよ

最初、正2^2角形で近似し、一辺の長さをf(2)=sqrt(2)とする。
正2^n角形の一辺f(n)と正2^(n+1)角形の一辺f(n+1)の関係は、
f(n+1)=sqrt(2-sqrt(4-f(n)*f(n)))
である。円周率は、(2^n)*f(n)/2 となる。


● プログラム
#include
#include
main() {
int n;
double f,pi,w;
pi = 4.0*atan(1.0);
printf("π = %16.12lf \n\n",pi);
printf(" n f(n) π -近似値\n");
w = 4.0; /* w=2^2。*/
f = sqrt(2.0);
for( n=2; n<=31; n++ ) {
f = sqrt(2.0 - sqrt(4.0 - f*f));
w = w * 2.0; /* w=2^n。*/
printf("%2d: ",n);
printf("%15.12f %15.12f\n",f,pi-w*f/2);
}
}



 はい。Cのプログラミングなわけですが、ちょっとわからないところがあるのでメモです。

 プログラムは前提わかってりゃどうとでもなるのでいいんですが、前提部分の、円周率は、(2^n)*f(n)/2 となる。ってのがわからん。

 (2^n)が多角形の各辺の数、f(n)はそれらの長さ。でいいんだよね多分。(ここが間違ってたらどうしようw)

 で、それらの乗算が多角形の辺の長さになる。

 ここまではいいんだけど、なんで2で割ってるの?

 なんで??

 

テーマ : プログラミング - ジャンル : コンピュータ

2008/04/27 03:16 | メモCOMMENT(2)TRACKBACK(0)  TOP

コメント

SHITO

イミフwww

プログラミング?なにそれ?おいしいの?

ウオリスの式を使えばおk

No:92 2008/04/27 23:20 | SHITO #wLMIWoss URL編集 ]

>>SHITOさん

なんでウオリスの式とか知ってるのw
俺最近まで知らなかったのにw

No:93 2008/04/28 03:25 | こむぎ(仮)@ブログ主 #- URL編集 ]

コメントの投稿



管理者にだけ表示を許可する

 | BLOG TOP |