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