始める無料で始める

サイコロゲームのシミュレーション

これでシミュレーションの最初の3ステップを実装する方法がわかりました。次のステップ、つまり繰り返しのランダムサンプリングについて考えていきます。

1回だけ結果をシミュレーションしても、その結果がどのくらいの頻度で起こるかはわかりません。前の演習のサイコロゲームでは、1回勝てたのはよいことですが、このゲームを複数回プレイしたときにどのくらいの回数勝てると期待できるのかを知りたければ、ランダムサンプリングのプロセスを何度も繰り返す必要があります。ランダムサンプリングを繰り返すことで、内在する不確実性を理解・可視化し、次のアクションを決めるのに役立ちます。

この演習を通して、シミュレーションを実行する第4ステップ—繰り返しサンプリングして結果を生成する—を実装できるようになります。

この演習はコースの一部です

Pythonで学ぶ統計シミュレーション

コースを見る

演習の手順

  • sims を100回の反復に設定し、wins を0で初期化します。
  • forループを書いてサイコロを繰り返し振ります。
  • outcomes に2個のサイコロを振った結果を代入します。
  • 2つのサイコロの目が同じであれば、wins を1増やします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Initialize model parameters & simulate dice throw
die, probabilities, num_dice = [1,2,3,4,5,6], [1/6, 1/6, 1/6, 1/6, 1/6, 1/6], 2
sims, wins = ____, ____

for i in range(sims):
    outcomes = ____ 
    # Increment `wins` by 1 if the dice show same number
    if ____: 
        wins = wins + 1 

print("In {} games, you win {} times".format(sims, wins))
コードを編集して実行