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

การเลือกการแจกแจงความน่าจะเป็นที่ไม่ถูกต้อง

ในแบบฝึกหัดนี้ เราจะทำงานต่อจากตัวอย่างการประมาณค่า pi: A graph of a circle inside a square with randomly sampled points

จะเกิดอะไรขึ้นถ้าเปลี่ยนการแจกแจงความน่าจะเป็นจากการแจกแจงสม่ำเสมอแบบต่อเนื่อง (random.uniform()) ไปเป็นการแจกแจงสม่ำเสมอแบบไม่ต่อเนื่อง (random.randint())? ผลลัพธ์จะไม่น่าเชื่อถือ เนื่องจาก random.randint() สุ่มค่าจำนวนเต็ม ในขณะที่ random.uniform() สุ่มค่าทศนิยมแบบต่อเนื่อง

สังเกตค่า pi ที่ได้จากการจำลองนี้ เพราะการเลือกการแจกแจงความน่าจะเป็นที่ไม่ถูกต้องจะทำให้ผลลัพธ์ไม่แม่นยำ การเลือกการแจกแจงที่เหมาะสมถือเป็นสิ่งสำคัญในการทำ Monte Carlo simulations และเราจะเจาะลึกรายละเอียดเกี่ยวกับการแจกแจงประเภทต่าง ๆ ในบทเรียนถัดไป

ได้ import random ไว้ให้แล้ว

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

Monte Carlo Simulations ใน Python

ดูคอร์ส

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

  • สุ่มค่าพิกัด x และ y ในช่วง -1 ถึง 1 โดยใช้ random.randint() แทนฟังก์ชัน random.uniform() ที่ถูกต้องซึ่งใช้ในวิดีโอ

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

n = 10000
circle_points = 0 
square_points = 0 
for i in range(n):
    # Sample the x and y coordinates from -1 to 1 using random.randint()
    x = ____
    y = ____
    dist_from_origin = x**2 + y**2
    if dist_from_origin <= 1:
        circle_points += 1
    square_points += 1
pi = 4 * circle_points / square_points
print(pi)
แก้ไขและรันโค้ด