เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

โมดูล np.random และการทดลองแบบ Bernoulli

การทดลองแบบ Bernoulli เปรียบได้กับการโยนเหรียญที่อาจมีความลำเอียง โดยในแต่ละครั้งที่โยน เหรียญมีความน่าจะเป็น \(p\) ที่จะออกหัว (สำเร็จ) และความน่าจะเป็น \(1-p\) ที่จะออกก้อย (ล้มเหลว) ในแบบฝึกหัดนี้ คุณจะเขียนฟังก์ชันสำหรับดำเนินการทดลอง Bernoulli จำนวน n ครั้ง ชื่อว่า perform_bernoulli_trials(n, p) ซึ่งจะคืนค่าจำนวนครั้งที่สำเร็จจากการทดลองทั้งหมด n ครั้ง โดยแต่ละครั้งมีความน่าจะเป็นของความสำเร็จเท่ากับ p ในการดำเนินการแต่ละครั้ง ให้ใช้ฟังก์ชัน rng.random() ซึ่งจะคืนค่าตัวเลขสุ่มระหว่างศูนย์ถึงหนึ่ง

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Statistical Thinking in Python (ตอนที่ 1)

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดฟังก์ชันที่มี signature เป็น perform_bernoulli_trials(n, p)
    • กำหนดค่าเริ่มต้นของตัวแปร n_success ซึ่งใช้นับจำนวน True (ความสำเร็จจากการทดลอง Bernoulli) ให้เป็นศูนย์
    • เขียน for loop ที่ดำเนินการทดลอง Bernoulli ในแต่ละรอบ และเพิ่มจำนวนความสำเร็จหากผลลัพธ์เป็น True โดยวนซ้ำ n รอบผ่าน range(n)
      • ในการดำเนินการทดลอง Bernoulli แต่ละครั้ง ให้สุ่มตัวเลขระหว่างศูนย์ถึงหนึ่งโดยใช้ rng.random() หากตัวเลขที่ได้มีค่าน้อยกว่า p ให้เพิ่มค่า n_success (ใช้ตัวดำเนินการ += 1) ทั้งนี้ได้มีการสร้าง RNG และกำหนด seed ไว้แล้วในตัวแปร 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
แก้ไขและรันโค้ด