np.random モジュールとベルヌーイ試行
ベルヌーイ試行は、偏りのあるかもしれないコイン投げと考えることができます。具体的には、各コイン投げで表(成功)が出る確率が $p$、裏(失敗)が出る確率が \(1-p\) です。この演習では、n 回のベルヌーイ試行を行い、成功回数を返す関数 perform_bernoulli_trials(n, p) を作成します。各試行の成功確率は p です。各ベルヌーイ試行を実行するには、0 以上 1 未満の乱数を返す rng.random() 関数を使います。
この演習はコースの一部です
Pythonで学ぶ統計的思考(パート1)
演習の手順
- 署名が
perform_bernoulli_trials(n, p)の関数を定義します。- ベルヌーイ試行の成功(
True)を数えるカウンター変数n_successを 0 に初期化します。 forループを書き、各イテレーションでベルヌーイ試行を 1 回行い、結果がTrueのときに成功数をインクリメントします。range(n)をループしてn回のイテレーションを行います。- ベルヌーイ試行を行うには、
rng.random()を使って 0 以上 1 未満の乱数を選びます。選んだ数がp未満であれば、n_successをインクリメントします(このときは+= 1演算子を使います)。RNG は変数rngとしてすでに生成・シード済みです。
- ベルヌーイ試行を行うには、
- 関数は成功回数
n_successを返します。
- ベルヌーイ試行の成功(
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
def perform_bernoulli_trials(n, p):
"""Perform n Bernoulli trials with success probability p
and return number of successes."""
# Initialize number of successes: n_success
n_success = ____
# Perform trials
for i in ____:
# Choose random number between zero and one: random_number
# If less than p, it's a success so add one to n_success
if ____:
____
return n_success