乱数で円周率を求める
C言語ケーススタディ

Study C Ver2販売開始のお知らせ

 C言語の勉強や教育用に最適です。
 2004/8/23よりStudy C Ver2の販売を開始しました。
 Study C Ver2の新しい機能については
 こちらをご参照ください。

乱数を使用して円周率を求めるプログラムを作成します(モンテカルロ法といったと思います)。

一辺が1の正方形に円の右上1/4を描きます。その上に適当な点を打っていき1/4円の内側の点か外側の点かを調べそれぞれの数をカウントしていきます。 円の内側かどうかはその座標のx*x + y*yが1以下かどうか判別することができます。 点の数の総数で円内に打たれた点の数を割り4倍すると円周率が求められます。 rand関数は0から32767までの数値を返すのでその値を32767.0で割ると0から1の座標が求められます。



#include <stdio.h>

main()
{
	double	x, y;

	int	i1, in;

	srand(time(NULL));
	in = 0;
	for(i1 = 0; i1 < 1000000; i1++){
		x = (double)rand() / 32767.0;
		y = (double)rand() / 32767.0;
		if(x * x + y * y <= 1.0)
			in++;
		if(i1 > 0 && i1 % 10000 == 0)
			printf("%d : %f\n", i1, (double)in / i1 * 4.0);        
	}
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

C言語でゲームプログラマーを目指す方へ
 ■C言語ゲームプログラミング講座
 C言語でのゲームプログラミングを解説する講座
 始めました。

お問い合わせ先 C言語のトップページに戻る Copyright(C) 2003 潟Iーキッド