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))