////////////////////////////////////////////////////////////////////////////////
//  << j183b.java >>
//
//  基礎(8):円周率の近似
//
//  区間[0,1]の一様乱数の組(x,y)をn組生成し、x*x+y*y<=1を満たす組cを数えると、
//  4c/nが円周率の近似値となる。
//
////////////////////////////////////////////////////////////////////////////////

class j183b {
  public static void main(String args[]) {

    int n = 100000; // 乱数組の個数。
    double x,y; // 区間[0,1]の一様乱数。
    int c = 0; // 4分円内(x*x+y*y<=1)に入る乱数組の個数。

    // 一様乱数を作成し出現頻度を数える。
    for( int i=1; i<=n; i++ ) { 
      x = Math.random();
      y = Math.random();
      if( x*x+y*y <= 1.0 ) { c++; }
      if( i%10000 == 0 ) {
        System.out.println("i=" + i + " 円周率の近似値=" + 4.0*c/i);
      }
    }
  }
}
実行結果
% javac j183b.java

% java j183b
i=10000 円周率の近似値=3.144
i=20000 円周率の近似値=3.1388
i=30000 円周率の近似値=3.1414666666666666
i=40000 円周率の近似値=3.1397
i=50000 円周率の近似値=3.14704
i=60000 円周率の近似値=3.1484666666666667
i=70000 円周率の近似値=3.1498285714285714
i=80000 円周率の近似値=3.14465
i=90000 円周率の近似値=3.142622222222222
i=100000 円周率の近似値=3.1452