原理:通過大量隨機樣本,獲得較為精確的值

圓與正方形面積之比為pi/4,隨機向正方形中投入大量的樣本點,通過算出到圓心的距離來判斷落入圓中樣本點的個數,在圓中點的個數比上點的總個數,乘以4,就得到pi的值。
from random import random
from math import sqrt
from time import clock
#取總數
darts=2**22? ?
hist=0
clock()
for i in range(1,darts):
? ? x,y=random(),random()
? ? dist=sqrt(x**2+y**2)
? ? if dist<=1.0:
? ? ? ? hist=hist+1
pi=4*(hist/darts)
print('pi is %s'%pi)
print('運行時間 %ss'%clock())

心得收獲:整個程序理解了原理后,代碼并不困難,需要注意一下語法就行了。