ふと小改良を思いついたのでやってみた。
 断っておくと改良でなく改良なのであしからず。

 本題の前にまず通常のやり方を簡単に説明。
 まず1×1の正方形内にランダムに点を打つ。点の総数はN。
 下の図のような円の内側に入った点の数をカウントする。そのカウントをPとする。
 monte_pi_01
 正方形の面積は1、1/4円の面積はπ/4。
 点の数NとPの比率も面積の比率に近似するはずなので、そのことからπの近似値が以下のように求まる。
 π≒4P/N

 以上が通常のやり方だ。

 そして今回思いついた小改良は上図の円の部分を、下図のような扇形を二つ重ねた図形に置き換えるというものだ。
 monte_pi_img02
 この図形は小・中学校の算数や数学でよく見かけるやつで面積はπ/2-1となる。
 そしてπの近似計算は、
 π≒2(P/N+1)
 ということになる。

 さて、この小改良の結果はというと、
 3回中2回は通常のやり方よりも若干高い精度になった。
 しかし、残りの1回は通常のやり方の方が良い結果となってしまった。

 点の総数を増やせばもっと傾向が変わるのではないかと1万点、1億点と増やしていったが、不思議とその傾向は変わらなかった。
 3回中2回は良い結果、残り1回は悪い結果という具合だ。
 どうやら乱数を使ったアルゴリズムのゆえか、運の良い場合と、運の悪いランダムで訪れるらしい。

 こんなものを改良と言うのはおこがましいかもしれない。改良と言ったところだろう。

 ついでに下の図のようにしたらどうなるのかも検証してみたが、これは通常のやり方に対して完敗だった。
 monte_pi_img03

 ちなみに、Pythonを使って検証したが、10億点以上ともなるとかなりの計算時間となる(うちのしょぼPCでは1時間近くかかった)。
 10億点やっても円周率の精度は3.141までは一致するが、それ以降の桁はプログラム実行のたびに一致したりしなかったりと心許ない感じ。
 モンテカルロ法で高い精度の円周率を求めるのはあまりお勧めしない。その計算時間で他のやり方を試した方が良い。