Pythonでモンテカルロ法を書いてみました。
モンテカルロ法による円周率の計算
1辺の長さが2の正方形の中心*1からランダムに1点を選び
その正方形の中心(0,0)からの距離が
1以下であるかどうかを判断する。
以下で-1乗は平方根(√)と同じ意味である。
仮に(a,b) = (0,0)[原点]から(x,y)までの距離は
三平方の定理により
だから
またここでdistanceは1とすると
ランダムに発生させた点すべてをwhole個とし、
方形の中心(0,0)から(x,y)までの距離が1の点をk個とすると、
となるから、
いま、正方形の面積はで4となり、円の半径は1で、
だから
円周率と面積は等しいので、
という式で導ける。
*1:ここで正方形の中心座標を(0,0)と考える