[統計] コインで表を1、裏を0とした時に4つ一度に投げた場合に合計がどうなるかの確率を計算
プログラミングの練習がてら、統計的な問題の計算をやってみることにしました。
全事象の数は2^4 = 16
それぞれの事象を合計(sum)ごとに分けると
これを実際にコインを投げてこの確率になるか確かめるわけですが、実際にコインを投げ続けるのは大変過ぎるのでプログラミングを組んでコンピューター上で仮想実験することにしました。
コインを投げるにあたっては、randomモジュールのrandint()関数で整数0, 1のいずれかが出る乱数を用いて対応することにしました。
手順としてはまずコインを1回投げる毎に合計を求めます。そして合計0〜4の5つのうちそれぞれ何回出ているのかを求めて、出た回数の確率を求めていきます。
例えば1投目で合計0となったとすれば、
延々とコインを投げるプログラミング処理を組んで、コインを投げる処理を延々と繰り返すことで解説で説明した確率になっていくかを調べていきます。
この段階ではまだ最も多く出るであろう合計2(赤色)はそれほど大きくはありません。
(それぞれ3つ確率があるのは、100万回繰り返す計算を3回行ったため)
この結論から何をどうこうするということではありませんが、今後もう少し込み入った計算への取っ掛かりとして今回このように試してみました。あえて何かに利用するとしたら、コイン投げでどの合計値が出るのか当てっコするゲームででも使えるんじゃないかと思います。
問題
問題は- コインを4つ用意
- コインの表を「1」、裏を「0」とする
- 4つのコインを一度に投げる
- 4つのコインの裏表を判定して合計を求める
解説
4つのコインの裏表の組み合わせは「0, 1」で表すと(sumは4つのコインの合計)- 0, 0, 0, 0 : sum 0
- 1, 0, 0, 0 : sum 1
- 0, 1, 0, 0 : sum 1
- 0, 0, 1, 0 : sum 1
- 0, 0, 0, 1 : sum 1
- 1, 1, 0, 0 : sum 2
- 1, 0, 1, 0 : sum 2
- 1, 0, 0, 1 : sum 2
- 0, 1, 1, 0 : sum 2
- 0, 1, 0, 1 : sum 2
- 0, 0, 1, 1 : sum 2
- 1, 1, 1, 0 : sum 3
- 1, 1, 0, 1 : sum 3
- 1, 0, 1, 1 : sum 3
- 0, 1, 1, 1 : sum 3
- 1, 1, 1, 1 : sum 4
全事象の数は2^4 = 16
それぞれの事象を合計(sum)ごとに分けると
- sum 0 : 1 (6.25%)
- sum 1 : 4 (25.00%)
- sum 2 : 6 (37.50%)
- sum 3 : 4 (25.00%)
- sum 4 : 1 (6.25%)
これを実際にコインを投げてこの確率になるか確かめるわけですが、実際にコインを投げ続けるのは大変過ぎるのでプログラミングを組んでコンピューター上で仮想実験することにしました。
プログラミング
プログラミング言語はPythonを用いました。コインを投げるにあたっては、randomモジュールのrandint()関数で整数0, 1のいずれかが出る乱数を用いて対応することにしました。
手順としてはまずコインを1回投げる毎に合計を求めます。そして合計0〜4の5つのうちそれぞれ何回出ているのかを求めて、出た回数の確率を求めていきます。
例えば1投目で合計0となったとすれば、
- sum 0 : 100%
- sum 1 : 0%
- sum 2 : 0%
- sum 3 : 0%
- sum 4 : 0%
- sum 0 : 50%
- sum 1 : 0%
- sum 2 : 50%
- sum 3 : 0%
- sum 4 : 0%
延々とコインを投げるプログラミング処理を組んで、コインを投げる処理を延々と繰り返すことで解説で説明した確率になっていくかを調べていきます。
実験結果
数字をずらずらと書いていっても長くなるだけなので、結果をグラフにしたものを示していきます。100回
100回投げると次のグラフのようになりました。縦軸は出た合計値の確率。横軸はコインを投げた回数となってます。この段階ではまだ最も多く出るであろう合計2(赤色)はそれほど大きくはありません。
500回
500回でそれぞれの確率はだいたいの傾向に落ち着いてるように見えますが、まだ同じ確率になる合計値1(紫色)と3(青色)には差が開いています。1000回
それほど変化なし5000回
グラフからは3000回くらいでほぼ合計値1と3は一致してるように見て取れます。10000回
ここまで来るとそれぞれの合計値が出る確率はほぼ安定しています。この後100万回まで続けていますが、グラフとしてはほぼ変化はないので結果は省略します。100万回繰り返した時の確率
最終的に100万回まで繰り返した時のそれぞれの合計値の出た確率は以下のようになりました。(それぞれ3つ確率があるのは、100万回繰り返す計算を3回行ったため)
- sum 0 : 6.24%, 6.23%, 6.28%
- sum 1 : 25.02%, 24.94%, 25.03%
- sum 2 : 37.46%, 37.62%, 37.55%
- sum 3 : 25.05%, 24.94%, 24.89%
- sum 4 : 6.23%, 6.27%, 6.25%
結論
コンピューター上でのプログラミングによるシミュレーション結果ですが、以上のように統計的な変化を調べることが出来ました。厳密にはプログラミングで使用している乱数がどのように発生されたものなのかも調べて考慮する必要があるのだと思いますが、まぁ簡単に調べる範囲ではこんなものでもいいとは思います。この結論から何をどうこうするということではありませんが、今後もう少し込み入った計算への取っ掛かりとして今回このように試してみました。あえて何かに利用するとしたら、コイン投げでどの合計値が出るのか当てっコするゲームででも使えるんじゃないかと思います。
コメント
コメントを投稿