一分鐘了解蒙特卡洛方法
蒙特卡羅方法是一種計(jì)算方法。原理是通過大量隨機(jī)樣本,去了解一個(gè)系統(tǒng),進(jìn)而得到所要計(jì)算的值。最經(jīng)典的莫過于圓周率π
的計(jì)算了。
圓周率π的計(jì)算
單位圓面積為π,并且內(nèi)切與邊長為2的正方形,用隨機(jī)數(shù),10000個(gè)點(diǎn)往下面投,落到圓里面的概率乘以4就是π的值
說明:等式左邊,是圓與正方形面積之比;等式右邊,是落在單位圓內(nèi)的點(diǎn)與落在正方形內(nèi)的點(diǎn)的比值。二者相等。
分析
1、以圓心為原點(diǎn),建立二維坐標(biāo)系;
2、隨便投一個(gè)點(diǎn),這個(gè)記為(x, y)
,落在圓內(nèi),則到圓心的距離 x*2 + y*2 <= 1
;
3、投點(diǎn)10000次,落入圓內(nèi)次數(shù)n,π值為n / 10000 * 4
;
Python代碼
分析好了,代碼就很容易實(shí)現(xiàn)了,
4次模擬結(jié)果
3.142
3.1424
3.1368
3.156
代碼Github地址: https://github.com/ddxygq/PyCode
作者:柯廣的網(wǎng)絡(luò)日志
微信公眾號(hào):Java大數(shù)據(jù)與數(shù)據(jù)倉庫