公正なサイコロを振る
シミュレーション設計の基本をつかめば、あらゆるシステムやプロセスに応用できます。次は、いくつかの基本例を使って各ステップがどのように実装されるかを学びます。
学んだように、シミュレーションはランダムサンプリングの繰り返しです。ですので最初のステップは、まずはランダムサンプルを「1回」取得することです。1回できれば、あとはそのプロセスを何度も繰り返すだけです。この演習では、1回のランダムサンプルをどのように得るかに焦点を当てます。ここでは、公正な6面サイコロを振る状況で考えます。
この演習が終わるころには、シミュレーション実行の最初の2つのステップ――乱数変数の定義と確率の割り当て――の実装に慣れることができます。
このコースの残りの部分では、設定されているシードは IPython シェルで確認してください。
この演習はコースの一部です
Pythonで学ぶ統計シミュレーション
演習の手順
- 取りうる結果を要素にもつリストとして6面サイコロを作成し、変数
dieに代入します。 - 6つの面が等確率で出るように確率を定義し、変数
probabilitiesに代入します。 - 最後に、
np.random.choice()を使ってサイコロを1回振るシミュレーションを行い、その結果を変数outcomeに記録します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define die outcomes and probabilities
die, probabilities, throws = [____], [____], 1
# Use np.random.choice to throw the die once and record the outcome
outcome = ____(___, size=____, p=____)
print("Outcome of the throw: {}".format(outcome[0]))