T_NAKAの阿房ブログ

アクセスカウンタ

zoom RSS モンテカルロ法でπを求めるのは Excel で簡単に実現できる

<<   作成日時 : 2016/05/02 00:01   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

20. Monte Carlo simulations, estimating piの復習(2)で説明した内容は python ではなく、Excel で簡単に実現できますので、やってみたいと思います。

論理は
画像

であり、Excel の rand 関数で0〜1の間の乱数をその都度発生させることが出来、IF 関数で1/4 円内に入ったかどうかの判定も可能で、もちろん入ったダーツを足し込むことは十分出来るので、 python でやったことを実現できることになります。
具体的なシートは次のようになります。
画像

1列ずつ説明していきましょう。

「ダーツの数」:投げたダーツの数を示します。
 (A2)に "1" を入れ、(A3) に "= A2+1" を入れて以下ドラッグしておきます。
 1つずつインクリメントするということです。

「x 座標」:ダーツの当たった位置の x 座標をシュミレーションします。
 (B2)に "= RAND()" を入れて以下ドラッグしておきます。
 
「y 座標」:ダーツの当たった位置の y 座標をシュミレーションします。
 (C2)に "= RAND()" を入れて以下ドラッグしておきます。

 つまり、1本ダーツを投げると、1×1 の正方形の中にランダムに刺さるということになります。

「原点距離」:原点 (0,0) からダーツの刺さった位置までの距離を計算します。
 (D2)に "= SQRT(B2*B2+C2*C2)" を入れて以下ドラッグしておきます。
 
 を計算している訳です。

「当たりか?」:最初の図にある 1/4 円内にダーツが刺されば "1" でそれ以外は "0" とします。
 (E2)に、"= IF(D2<=1,1,0)" を入れて以下ドラッグしておきます。
 (D2)で計算した「原点距離」が1以下なら "1" 1を超える場合は "0" とするということです。

「当たりの累計」:当たりの数の累計を順次求めていきます。
 (F2)に "= E2" を入れ、(F3)に "= F2+E3" を入れて以下ドラッグしておきます。
 累計を求める典型的なやり方ですね。

「πの推定」:最初の図に示した式 4×(当たりの累計÷ダーツの数)を計算します。
 (G2)に "= 4*(F2/A2)" を入れて以下ドラッグしておきます。

「πの真値」:真値というと正しくないのですが、グラフで分かりやすいように近似値を入れておきます。
 (H2)に、"3.14159" を入れて以下ドラッグしておきます。

結果は次のようになります。
画像

当たり前ですが、アルゴリズムが分かっていれば、どんなプログラミング言語でも実現できますし、ある程度関数が用意されている表計算ツールでも実装できます。場合によっては表計算の方が簡単で確実かもしれません。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
モンテカルロ法でπを求めるのは Excel で簡単に実現できる T_NAKAの阿房ブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる