錯誤的確定性計算
在這個練習與下一個練習中,你會用影片中的圓周率(pi)計算做些實驗,進一步理解模擬流程中每個步驟的重要性。
回想一下:用模擬求 pi 時,會隨機產生點 $(x, y)$,其中 \(x\) 與 \(y\) 的範圍介於 -1 到 1,如下圖所示。

如果你把「判斷是否應將點加入 circle_points」的確定性計算寫錯了,會發生什麼事?這會如何影響最後的結果?你將會從離譜的 pi 值看出,正確設定確定性計算對 Monte Carlo 模擬至關重要!
我們已為你匯入了 random。
本練習屬於課程
Python 的 Monte Carlo 模擬
練習說明
- 將任何「到原點距離小於 0.75」的點遞增
circle_points(而不是像影片中示範的距離為 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)