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

การคำนวณค่า pi

มาลองทำตัวอย่างคลาสสิกกัน นั่นคือการประมาณค่า \(\pi\)

ลองนึกภาพสี่เหลี่ยมจัตุรัสที่มีด้านยาว \(2\) โดยมีจุดกำเนิด \((0, 0)\) เป็นจุดศูนย์กลาง และมุมทั้งสี่อยู่ที่พิกัด \((1, 1), (1, -1), (-1, 1), (-1, -1)\) สี่เหลี่ยมนี้มีพื้นที่ \(2\times 2 = 4\) จากนั้นลองนึกภาพวงกลมรัศมี \(1\) ที่มีจุดศูนย์กลางอยู่ที่จุดกำเนิด และพอดีอยู่ภายในสี่เหลี่ยมนั้น วงกลมนี้มีพื้นที่ \(\pi \times \text{radius}^2 = \pi\)

ในการประมาณค่า \(\pi\) เราจะสุ่มจุดหลายจุดภายในสี่เหลี่ยม แล้วหาสัดส่วนของจุดที่อยู่ภายในวงกลม (\(x^2 + y^2 <= 1\)) จากนั้นนำสัดส่วนนี้คูณด้วย \(4\) ก็จะได้ค่าประมาณของ \(\pi\)

หลังจากทำแบบฝึกหัดนี้ คุณจะเข้าใจวิธีใช้การจำลองสถานการณ์เพื่อการคำนวณมากขึ้น

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

การจำลองทางสถิติด้วย Python

ดูคอร์ส

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

  • ตรวจสอบค่าที่แท้จริงของ \(\pi\) โดยใช้ np.pi ใน console จากนั้นกำหนดค่า sims เป็น 10000 และ circle_points เป็น 0
  • ภายใน for loop ให้สร้างจุด (พิกัด x และ y) โดยใช้ np.random.uniform() ในช่วง -1 ถึง 1 โดยกำหนด size=2
  • ตรวจสอบว่าจุดนั้นอยู่ภายในวงกลมหนึ่งหน่วยหรือไม่ด้วยสมการ \(x^2 + y^2 <= 1\) แล้วกำหนดผลลัพธ์ให้กับ within_circle และเพิ่มค่า circle_points ตามผลที่ได้
  • แสดงค่าประมาณของ \(\pi\) ในชื่อ pi_sim ซึ่งมีค่าเท่ากับ 4 เท่าของสัดส่วนจุดที่อยู่ภายในวงกลม

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

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

# Initialize sims and circle_points
sims, circle_points = ____, ____ 

for i in range(sims):
    # Generate the two coordinates of a point
    point = ____
    # if the point lies within the unit circle, increment counter
    within_circle = point[0]**2 + point[1]**2 <= 1
    if ____ == True:
        circle_points +=1
        
# Estimate pi as 4 times the avg number of points in the circle.
pi_sim = ____
print("Simulated value of pi = {}".format(pi_sim))
แก้ไขและรันโค้ด