はじめに
今回はちょっとだけ実験っぽい(?)ことをしてみましょう!
しかしプログラミングをかじっている人にとってはあまり面白くありません!当たり前のことをしますからね!
このブログを通して「コンピュータがどのくらい偉いのか?」を体感してもらいたいなと思います!
ちょっとした導入
少しだけ簡単なプログラムを作ってみましょう!
題して「無限サイコロ」!
サイコロを好きなだけ振るプログラムです!
まずはこのようなプログラムを書いて・・・
⬇︎無視してOK
実行してテキトーに何回かサイコロを振ってみます!(まあ,振ってる風デスケドネ)
⬇︎実行結果
もちろん「1〜6」の数がランダムに出てきます
では,じっくりと結果を見てみてください・・・
「3」という数がありませんね!
果たしてこれはたまたまなのでしょうか・・・それとも数の出現回数に偏りがあるからなのでしょうか・・・
そんな疑問が浮かび上がりますね!
では,実験して分析してみましょう!というのが本ブログの導入になります!
実験してみよう!
実験の内容は「ランダムで生成される数は本当に同じ確率で出現するのか?」です!
これを調べる方法は大まかにただ一つしかありません!
ズバり「めちゃくちゃプログラムを動かしまくって数を数えて頑張って計算!」です
しかし,これを人間が頑張ってやるのは超大変すぎますね!
これをコンピュータに任せてみましょう!
人間がやるとせいぜい1000回くらいサイコロ振ればまあ疲れます.(しかもめちゃくちゃ時間がかかります)
しかし,コンピュータであれば,「10,000,000回振って計算」までを数秒でできます!まさに天才ダ!
では実際にやってみよう!
⬇︎こんなプログラムを書きました
ポイントは18〜24行目!
サイコロの目が出現した回数を記録し,出現確率を求めて出力させます!
8行目のforループを見るとわかると思いますが,10,000,000回サイコロを振っています!
ちなみに17秒で実行が終了しました!すごいですね!
ところどころコメントアウト(#)していますが,これを外すとサイコロの目を全部出力できるのでやってみてください!
しかし,10,000,000回verでやると大変なことになりますが笑
よし!これだけデータを用意すればさすがに大丈夫だろう!ということで実行結果をお見せしましょう!
いかがでしょうか?
全ての数において出現確率がほぼ同じになりました!
そして,人間がやると計算ミスや数えミスなんてものも起こるでしょうから,こういう作業はコンピュータに任せてしまった方が断然速いですね!
すばらしい!!!
要するにコンピュータはクッソ頭の回転が速い!ということがわかりました!
しかし,「アイデアを生む」という点に関してはみなさんの方が恐らく出来るのでご心配なく!