モンテカルロ数値積分法による単位円の面積をRubyで

高校か大学の教科書の最初に載っているようなもんですけどね.
せっかくRubyの環境が出来て,モンテカルロ法入門も始まって,具体例があった方がいいよね,ということで.

プログラムはこれくらいです.

j = 1;
(1..1000).each{|i|
 s1 = rand() - 0.5;
 s2 = rand() - 0.5;
 # Circle
 if Math::sqrt(s1**2+s2**2)<=0.5 then
  j += 1;
 end;
 puts j.to_f/i;  
}

大量に数字が流れるので,ファイルに落として下さい.

落としたファイルを,gnuplotにかけてみました.

この場合の,emacsスクリーンショットは,こんな感じです.