開始使用免費開始

錯誤的確定性計算

在這個練習與下一個練習中,你會用影片中的圓周率(pi)計算做些實驗,進一步理解模擬流程中每個步驟的重要性。

回想一下:用模擬求 pi 時,會隨機產生點 $(x, y)$,其中 \(x\) 與 \(y\) 的範圍介於 -1 到 1,如下圖所示。

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

如果你把「判斷是否應將點加入 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)
編輯並執行程式碼