サイコロの目が出る確率は6分の1とは限らない
フツーに考えるとサイコロの目が出る確率って、それぞれ6分の1ですよね。でも6回振っても「1の目が1回も出ない」なんてことはザラにあります。
確率ってなんだったんだよって思っちゃいますね。で、最近読んだ本にそのあたりのことが詳しく書いてありました。
要するに「サイコロを投げる回数が大きくなればなるほど、1の目の出る確率は6分の1に近くなる」そうです。ホントにそうなのか試したくなってきました。
でも、さすがにサイコロを10万回とか投げたくないので、プログラミング言語Pythonで実行してみます。
標準モジュールのrandomを利用して、下記のような感じでサッと書いてみました。timesという変数にサイコロを投げる回数を入れています。下の例ですと10回サイコロを投げる感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | importtime importrandom start=time.time() times=10 result_dict={1:0,2:0,3:0,4:0,5:0,6:0} foriinrange(0,times): result=random.randint(1,6) result_dict[result]=result_dict[result]+1 foriinrange(1,7): print(str(i)+"が出た回数"+str(result_dict[i])+"回( "+str(result_dict[i]/times)+" )") elapsed_time=time.time()-start print("実行時間:{0}".format(elapsed_time)+"[sec]") |
回数を増やしつつ実行してみましょう。それぞれ5回ずつ実行してみました。
サイコロを10回投げた時の確率
10回投げるだけだと、バラつきがかなりありますね。1回も出ない目があったりします。出た回数の右のカッコ内の小数点の数値は、その目が出た割合を表しています。ちなみに6分の1は0.166…なので、0.5とかかなり遠いものがありますね。
サイコロを1000回投げた時の確率
1000回サイコロを投げてみると、すべての割合が0.2未満に収まりました。だいぶんバラツキが無くなってきたようです。
サイコロを10万回投げた時の確率
そしていよいよ10万回投げます。するとすべて0.16…に収まっているではありませんか!ほぼ6分の1と言ってよいと思います。
まとめ
こんな感じで、サイコロを投げる回数を大きくすればするほど、目の出る確率は6分の1に近づくことが体感できました。
ちなみに投げる回数を無限大にすると、それぞれの目の出る確率はピッタリ6分の1になるそうです。このあたりになると数学の話なのにファンタジーみたいになってきます。
ま、厳密な話をするとPythonが用意しているrandomモジュールがどれくらい正しくランダムしてくれてるのか、なんてことも問題になってきそうですが、目的は達成できたのでよしとします。
疑問に思ったことをプログラムでパパッとテストできるって、すごく便利ですね。世の中、ますます便利になっていくに違いないし、未来が楽しみです^^
コメント