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

การคำนวณแบบ Deterministic ที่ผิดพลาด

ในแบบฝึกหัดนี้และแบบถัดไป เราจะทดลองปรับเปลี่ยนการคำนวณค่า pi จากวิดีโอ เพื่อทำความเข้าใจความสำคัญของแต่ละขั้นตอนในกระบวนการ Simulation ให้ลึกยิ่งขึ้น

จำได้ไหมว่า Simulation สำหรับหาค่า pi นั้นจะสุ่มจุด \((x, y)\) โดยที่ \(x\) และ \(y\) มีค่าระหว่าง -1 ถึง 1 ดังที่แสดงในกราฟด้านล่าง

A graph of a circle inside a square with randomly sampled points

ลองคิดดูว่าถ้าเราเปลี่ยนการคำนวณแบบ Deterministic ที่ใช้ตรวจสอบว่าควรนับจุดเข้า circle_points หรือไม่ ผลลัพธ์จะเปลี่ยนแปลงอย่างไร? ค่า pi ที่ได้จะผิดเพี้ยนอย่างเห็นได้ชัด ซึ่งแสดงให้เห็นว่าการกำหนดการคำนวณแบบ Deterministic ให้ถูกต้องนั้นสำคัญมากสำหรับ Monte Carlo Simulations!

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

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

Monte Carlo Simulations ใน Python

ดูคอร์ส

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

  • เพิ่มค่า circle_points สำหรับทุกจุดที่มีระยะห่างจากจุดกำเนิดน้อยกว่า 0.75 (แทนที่จะใช้ระยะห่าง 1 อย่างที่แสดงในวิดีโอ)

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

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

n = 10000
circle_points = 0 
square_points = 0 
for i in range(n):
    x = random.uniform(-1, 1)
    y = random.uniform(-1, 1)
    dist_from_origin = x**2 + y**2
    # Increment circle_points for any point with a distance from origin of less than .75
    if ____:
        circle_points += 1
    square_points += 1
pi = 4 * circle_points / square_points
print(pi)
แก้ไขและรันโค้ด