np.random 模組與 Bernoulli 試驗
你可以把 Bernoulli 試驗想成擲一枚可能偏斜的硬幣。每次擲硬幣有機率 \(p\) 出現正面(成功),機率 \(1-p\) 出現反面(失敗)。在本練習中,你要撰寫一個函式 perform_bernoulli_trials(n, p) 來執行 n 次 Bernoulli 試驗,並回傳其中成功的次數。每一次試驗的成功機率都是 p。要執行單次 Bernoulli 試驗,使用 rng.random() 函式,它會回傳介於 0 與 1 之間的隨機數。
本練習屬於課程
Statistical Thinking in Python (Part 1)
練習說明
- 定義具有簽章
perform_bernoulli_trials(n, p)的函式。- 宣告並初始化變數
n_success為 0,作為 Bernoulli 試驗成功(True)的計數器。 - 撰寫一個
for迴圈,在每次疊代中執行一次 Bernoulli 試驗;若結果為True,就把成功次數加 1。透過迴圈range(n)進行n次疊代。- 要執行一次 Bernoulli 試驗,使用
rng.random()選擇一個介於 0 與 1 之間的隨機數。若選到的數小於p,就將n_success加 1(使用運算子+= 1)。亂數產生器(RNG)已經以變數rng建立並設好種子。
- 要執行一次 Bernoulli 試驗,使用
- 讓函式回傳成功次數
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