2007/07/19

Infomation Mathmatics Ⅰ

情報数学Ⅰのレポート意味もなくアップします。
もしかしたら困っている人がたどり着くかもだしね。

情報数学Ⅰ前期レポート
1E04J×××× ××××

・回答レベル: 応用

・プログラムリスト、解説:
//-------------------------------------------------------------------C
// 情報数学Ⅰ前期レポート(応用)
// Akitoshi Takayasu 2007/07/09
// File name = IMI.c
//-------------------------------------------------------------------C
// 各種ヘッダファイルを宣言
#include
#include
#include

// グローバル変数宣言
char line[20];
double x, y, pi, eps;
int i, j, count;

//===================================================================C
void main(){
//===================================================================C
// モンテカルロ法による円周率の計算
//-------------------------------------------------------------------C
// pi : πの近似値
// eps : 相対誤差
// count : ランダムに与えられた点のうち扇型に入る点の個数
// i : 反復回数,点の総数
// pi = 4.0*(count/i)
//-------------------------------------------------------------------C

// 初期設定
count = 0;
i = 1;
j = 100;
line[0] = 'y';

// 擬似乱数のシードを指定
srand((unsigned int)time(NULL));

// Main Loop-----------------------------------------------------------C
while((line[0] != 'n')&&(line[0] != 'N')){

// x,yにそれぞれ0以上1未満の実数を代入し、扇型内に含まれるか判定
// そしてπの近似値を計算している

x = (double)rand()/(RAND_MAX + 1.0);
y = (double)rand()/(RAND_MAX + 1.0);

if((x*x) + (y*y) < pi =" 4.0*((double)count/i);" i ="=" eps =" fabs(M_PI" pi="%f" i="=" count =" 0;" i =" 0;" j =" 100;">

・プログラムの実行結果:

(繰り返し回数: 100回) pi=2.800000 (相対誤差:0.108732)
(繰り返し回数: 1000回) pi=3.148000 (相対誤差:0.002040)
(繰り返し回数: 10000回) pi=3.140000 (相対誤差:0.000507)
(繰り返し回数: 100000回) pi=3.144520 (相対誤差:0.000932)
(繰り返し回数: 1000000回) pi=3.144516 (相対誤差:0.000931)
(繰り返し回数:10000000回) pi=3.142208 (相対誤差:0.000196)
もう一度やりますか?(y/n)
y
(繰り返し回数: 100回) pi=2.960000 (相対誤差:0.057803)
(繰り返し回数: 1000回) pi=3.156000 (相対誤差:0.004586)
(繰り返し回数: 10000回) pi=3.117200 (相対誤差:0.007764)
(繰り返し回数: 100000回) pi=3.139640 (相対誤差:0.000622)
(繰り返し回数: 1000000回) pi=3.141672 (相対誤差:0.000025)
(繰り返し回数:10000000回) pi=3.141430 (相対誤差:0.000052)
もう一度やりますか?(y/n)
h
(繰り返し回数: 100回) pi=3.120000 (相対誤差:0.006873)
(繰り返し回数: 1000回) pi=3.220000 (相対誤差:0.024958)
(繰り返し回数: 10000回) pi=3.147200 (相対誤差:0.001785)
(繰り返し回数: 100000回) pi=3.136440 (相対誤差:0.001640)
(繰り返し回数: 1000000回) pi=3.139044 (相対誤差:0.000811)
(繰り返し回数:10000000回) pi=3.141416 (相対誤差:0.000056)
もう一度やりますか?(y/n)
N

0 件のコメント: