蒙特卡洛方法求解圓周率(python)

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


圓與正方形面積之比為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())


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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容