1. 程式人生 > >蒙特卡洛法求圓周率100億資料

蒙特卡洛法求圓周率100億資料

程式碼

import time
import random
hits=0
pi=0
DARTS=100000*100000
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))

100萬個資料

在這裡插入圖片描述

100億個資料

三個半小時執行時間
在這裡插入圖片描述