モンテカルロ法の数値計算例(Java) |
- プログラムソース
モンテカルロ法を用いて円の面積をだし円周率の近似を求める。
import java.io.*;
class Montecarlo
{
public static void main()
{
double i,imax,n;
double x,y,pi;
n=0.0;
imax=10000000.0; //乱数の発生回数
for(i=0;i<=imax;i++)
{
x=Math.random(); //0以上1未満の乱数を生成
y=Math.random();
if((x*x+y*y)<1.0)
{ //0<=x,y<=1の範囲にある中心原点半径1の
n+=1.0; //扇形の中に乱数による点が入ったらカウントする
}
}
pi=n/imax*4.0; //半径1の円の面積すなわち円周率
System.out.println("円周率は" + pi);
}
}
- プログラム実行結果
円周率は3.1412372
Press any key to continue
|
|
|
|
|
|