みその計算物理学
ホーム はじめに リンク集
モンテカルロ法の数値計算例(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