python 用蒙特卡羅方法計算圓周率
阿新 • • 發佈:2019-01-30
蒙特卡洛方法
蒙特卡羅方法基於這樣的思想:假想你有一袋豆子,把豆子均勻地朝這個圖形上撒,然後數這個圖形之中有多少顆豆子,這個豆子的數目就是圖形的面積。當你的豆子越小,撒的越多的時候,結果就越精確。藉助計算機程式可以生成大量均勻分佈座標點,然後統計出圖形內的點數,通過它們佔總點數的比例和座標點生成範圍的面積就可以求出圖形面積。
程式碼
import time
import random
hits=0
pi=0
DARTS=10000*10000
start=time.perf_counter()
for i in range(DARTS):
x,y=random.random(),random.random( )
dist=pow(x ** 2+y**2,0.5)
if dist <= 1.0:
hits+=1
pi=4*(hits/DARTS)
print("圓周率的值是{:.10f}".format(pi))
print("程式執行時間為{}s".format(time.perf_counter()-start))