始める無料で始める

2つの公平なサイコロを振る

これまでに、シミュレーションの最初の2つの手順を実装する方法を学びました。次のステップである「確率変数間の関係を定義する」を実装していきましょう。

シミュレーションでは、1つではなく複数の確率変数を扱うことがよくあります。たとえば、2つのサイコロを振って、両方が同じ数なら勝ちというゲームを考えます。ここでは2つの確率変数(2個のサイコロ)があり、それらの間に「同じ数なら勝ち、違えば負け」という関係があります。実際には、特に天候のような現象をシミュレーションするときは、確率変数間の関係はもっと複雑になります。

この演習の終わりには、シミュレーションを実行する第3のステップである「確率変数間の関係を定義する」をどのように実装するかに慣れることができます。

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

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

コースを見る

演習の手順

  • num_dice を 2 に設定します。
  • np.random.choice() 関数を完成させ、2つのサイコロを振って、その出目を outcomes 変数に記録します。
  • 2つのサイコロが同じ数かどうかを確認するためのブール条件を記入します。

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

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

# Initialize number of dice, simulate & record outcome
die, probabilities, num_dice = [1,2,3,4,5,6], [1/6, 1/6, 1/6, 1/6, 1/6, 1/6], ____
outcomes = np.random.choice(____, size=____, p=____) 

# Win if the two dice show the same number
if ____ == ____: 
    answer = 'win' 
else:
    answer = 'lose'

print("The dice show {} and {}. You {}!".format(outcomes[0], outcomes[1], answer))
コードを編集して実行