用蒙特卡罗方法实现圆周率的计算
生活随笔
收集整理的這篇文章主要介紹了
用蒙特卡罗方法实现圆周率的计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用蒙特卡羅方法實現圓周率的計算
要求(以下分析結果要在實驗報告上體現):
1.1
?對比不同精確度(0.01, 0.001, 0.0001, 0.00001, 0.000001)要求下,DARTS的數值。
精確度為0.01時
from random import random from math import sqrt import timeDARTS=1000 acc=0.01 PI=0for a in range(100):while 1:pi=0hits=0i=1while 1<=i<DARTS+1:x,y=random(),random()dist=sqrt(x**2+y**2)if dist<=1.0:hits=hits+1i+=1pi=4*(hits/DARTS)if abs(pi-PI)>acc:PI=piDARTS+=1else:breakprint("精確度={},PI={},DARTS={}".format(acc,PI,DARTS))精確度為0.001時
把acc=0.01改為acc=0.001即可
1.2
在精確度為0.01的實驗里,記錄前100次的PI值,觀察PI值的差異
from random import random from math import sqrt import timeDARTS=3000 acc=0.01 PI=3.141592653589793 for b in range(100):while 1:pi=0hits=0i=1while 1<=i<DARTS+1:x,y=random(),random()dist=sqrt(x**2+y**2)if dist<=1.0:hits=hits+1i+=1pi=4*(hits/DARTS)if abs(pi-PI)>acc:PI=pielse:breakprint("PI({})值是{}".format(b,PI),end='')總結
以上是生活随笔為你收集整理的用蒙特卡罗方法实现圆周率的计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 园林景观cad_自学CAD太难?送你55
- 下一篇: Apk Extractor(APK提取器