1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶモンテカルロ・シミュレーション

Connected

演習

ペアのサイコロシミュレーション

レッスンの例と同様に、2つの袋からそれぞれサイコロを1つずつ取り出して振ります。各袋には偏ったサイコロが3個ずつ入っています。

bag1 = [[1, 2, 3, 6, 6, 6], [1, 2, 3, 4, 4, 6], [1, 2, 3, 3, 3, 5]]
bag2 = [[2, 2, 3, 4, 5, 6], [3, 3, 3, 4, 4, 5], [1, 1, 2, 4, 5, 5]]

違いは、2つの袋のサイコロがペアになっていることです。bag1の2番目のサイコロを選んだら、bag2の2番目のサイコロも同時に選びます。各試行で行うことは次のとおりです。

  • 2つの袋からサイコロのペアをランダムに1組選び、振る
  • dice1 と dice2 の出目の合計が8なら成功、そうでなければ失敗

あなたのタスクは、roll_paired_biased_dice() 関数内の for ループを完成させ、この関数を使って dice1 と dice2 の各ユニークな組み合わせごとの成功確率を計算することです。

次のライブラリはすでにインポート済みです:random、numpy は np、pandas は pd、seaborn は sns、matplotlib.pyplot は plt。

指示1 / 2

undefined XP
    1
    2
  • random.randint() を使ってサイコロのインデックス(0〜5の数)を取得します。
  • bag_index の後に正しい dice_index を用いて、bag1 と bag2 からサイコロのペアをサンプルします。