蒙特卡洛方法求圓周率 python產(chǎn)生10000個(gè)隨機(jī)點(diǎn)計(jì)算圓周率?
python產(chǎn)生10000個(gè)隨機(jī)點(diǎn)計(jì)算圓周率?蒙特卡羅方法可以通過多次散射點(diǎn)計(jì)算周長,模擬概率,計(jì)算面積。它是否在圓內(nèi),可以通過到圓心的距離來求解。利用計(jì)算機(jī)的運(yùn)算速度,可以快速計(jì)算周長。噴灑次數(shù)越多
python產(chǎn)生10000個(gè)隨機(jī)點(diǎn)計(jì)算圓周率?
蒙特卡羅方法可以通過多次散射點(diǎn)計(jì)算周長,模擬概率,計(jì)算面積。它是否在圓內(nèi),可以通過到圓心的距離來求解。利用計(jì)算機(jī)的運(yùn)算速度,可以快速計(jì)算周長。噴灑次數(shù)越多,PI越精確。代碼如下:
from random import random
from math import sqrt
from time import process time
DARTS=10000
hits=0.0
process time()
對于范圍內(nèi)的I(1,DARTS 1):
x,y=random()
dist=sqrt(x**2,y**2)
如果(dist<=1.0):
命中=命中1
pi=4*(命中/省道)
打?。ā眕i值為{}。". 格式(PI)
打印(”運(yùn)行時(shí)為:{。5F}s”。格式(過程)蒙特卡羅分析(統(tǒng)計(jì)模擬)是一種使用隨機(jī)抽樣統(tǒng)計(jì)來估計(jì)結(jié)果的計(jì)算方法。它可以用來估計(jì)PI。它是由約翰·馮·諾依曼提出的。由于計(jì)算結(jié)果的準(zhǔn)確性很大程度上取決于樣本數(shù),一般需要大量的樣本數(shù)據(jù),因此在沒有計(jì)算機(jī)的時(shí)代一直沒有得到重視。蒙特卡羅分析方法可以用來估計(jì)周長比。如圖所示,在邊長為2的正方形中,做一個(gè)半徑為1的圓。正方形的面積等于2×2=4,圓的面積等于π×1×1=π。因此,正方形的面積與圓的面積之比是4:π。現(xiàn)在讓我們用計(jì)算機(jī)或輪盤賭來生成幾組均勻分布在0和2之間的隨機(jī)數(shù),這些隨機(jī)數(shù)散落在正方形中作為某一點(diǎn)的坐標(biāo)。那么平方中的數(shù)N與圓中的數(shù)k之比接近平方面積與圓面積之比,即N:k≈4:π,因此π≈4K/N,需要大量均勻分布的隨機(jī)數(shù)才能得到更精確的值,這也是蒙特卡羅分析的缺點(diǎn)方法。
什么是蒙特卡洛法?
使用蒙特卡羅方法,在正方形中畫一個(gè)內(nèi)接圓,總面積為4rr,圓的面積為pirr,根據(jù)總點(diǎn)數(shù)與落在圓中的點(diǎn)數(shù)的比值,可以估算出pi