第10回の目標:ガチャのシミュレーションの例を通してシミュレーションの良さを感じる
物理的/社会的に現実に起こることは複雑である。複雑なものを単純化し簡潔に表現したものをモデルという。
対象のどのような性質を知りたいのか、明確にするのが大事である。すべての性質が本物と同じであれば、それは本物である。
今注目している性質以外のものを切り捨てるなどして単純化することで、分かりやすくするのかモデル化の意義である。
高校生が日々学んでいるのは、化学の、歴史の、語学の・・・様々な概念のモデルを自らの頭の中に構築する作業であるともいえる。
モデルを使って試してみることをシミュレーションという。
ガチャを作って、それを引いてみよう。
以降では1から100までの値をランダムで返す関数getRandom1to100()を使用してよい。この関数は引数を受け取らない。また関数名の途中をスペースで区切ってはいけないので注意。なお、この関数はこの講座でだけ使える関数である。
例題1 1% の確率で当たるガチャを1回引く関数oneGatyaを定義せよ。oneGatyaは引数を受け取らず、あたりの場合は1、外れの場合は0を戻り値とせよ。ヒント:1から100の中の好きな値を一つ選んであたりとすればよい。
例題2 1% の確率で当たるガチャを100回引く関数gatyaを定義せよ。例題1の解答欄にoneGatyaが完成している必要がある。gatyaはoneGatyaを100回呼び、n回目に始めてあたりが出たのであれば、nを返す。あたりが出なかったのであれば、0を返す。
例題3 1% の確率で当たるガチャを100回引くときに、当たる確率の理論値を計算して戻り値とする関数realPを定義せよ。ヒント:累乗は**で計算できる。2の3乗は2**3である。