在SciPy中,可以使用numpy.random
模塊來實現蒙特卡洛模擬。下面是一個簡單的示例,演示如何使用蒙特卡洛模擬來計算圓周率的近似值:
import numpy as np
# 設置隨機種子
np.random.seed(0)
# 模擬的次數
n = 1000000
# 在單位正方形內生成隨機點
points = np.random.rand(n, 2)
# 計算點到原點的距離
distances = np.linalg.norm(points, axis=1)
# 統計落在單位圓內的點的數量
inside_circle = np.sum(distances < 1)
# 計算圓的面積
area_square = 1
area_circle = inside_circle / n * area_square
# 估計圓周率
pi_estimate = 4 * area_circle
print("估計的圓周率為:", pi_estimate)
上面的代碼首先生成了1000000個在單位正方形內的隨機點,然后計算每個點到原點的距離,統計落在單位圓內的點的數量,進而估計圓的面積和圓周率的近似值。
通過運行上面的代碼,您可以得到一個估計的圓周率值。您也可以調整模擬的次數n
來獲得更精確的估計值。