2010年7月21日水曜日

手作りパイ(π)

簡単に手作りで円周率を求める方法です。 もう既知の事実なので計算するのも馬鹿馬鹿しいですが、C言語の勉強に最適なので体験することをおすすめします。

#include <stdio.h>

/*手作りパイ*/

int main(void){

/*円の面積を計算するメッシュを設定*/
unsigned int iMeshSize = 10000;

unsigned int iX, iY;
unsigned int iIn;
unsigned int iArea;
double dResult;


for(iMeshSize = 1; iMeshSize <= 10000; iMeshSize *= 10){

/*正方形と外接する円の面積比を求める*/
iArea = iMeshSize * iMeshSize;
iIn = 0;
for(iX = 0; iX < iMeshSize; ++iX){
for(iY = 0; iY < iMeshSize; ++iY){

if( (iX * iX + iY * iY) < iArea){
++iIn;
}
}
}

/*上記結果は1/4円なので4倍して円周率とする*/
dResult = 4.0 * iIn / iArea;

printf("Mesh=%10d^2 %f\n",iMeshSize,dResult);

}
return 0;
}

0 件のコメント:

コメントを投稿