前言python
蒙特卡羅方法是指使用隨機數(或更常見的僞隨機數)來解決不少計算問題的方法。與它對應的是肯定性算法。蒙特·卡羅方法在金融工程學,宏觀經濟學,計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)等領域應用普遍。算法
上面的是百度百科上面的介紹,接下來讓咱們一塊兒來看看蒙特卡羅方法在Python的中的應用吧,具備必定的參考價值,代碼以下:工具
以上就是咱們作一個簡單的圓周率的近似計算,在這個過程當中咱們要用到隨機數,所以須要先使用import numpy as np導入numpy庫。學習
在上面的程序中咱們用8000000個隨機數進行投放,這樣獲得的結果會更精確一些,運行程序須要必定的時間,最終獲得的結果以下:編碼
學習歷來不是一我的的事情,要有個相互監督的夥伴,工做須要學習python或者有興趣學習python的夥伴能夠私信回覆小編「學習」 獲取資料,一塊兒學習blog
接下來進入正題,你隨便在一個畫圖工具上描繪一個陰影圖片,咱們就能夠用蒙特卡羅來求它的陰影面積,以下圖:圖片
上面的圖形是不規則的,咱們只需知道在投放大量隨機數的狀況下,隨機數在黑色部分出現的機率,再用總面積相乘便可估算黑色部分的面積。咱們知道,黑色的rgb編碼爲(0,0,0),因此須要統計rgb編碼爲(0,0,0)時隨機數的投放機率便可。import
上面的代碼可分爲兩部分,第一個for後面是用蒙特卡羅方法得到的面積的估計值,第二個for後面是用遍歷全部像素點的方法得到的面積的精確值,得到兩個輸出後進行對比。隨機數
咱們在上面的程序中採用了9000000個隨機數,能夠看出兩個輸出結果相差並不大。百度
以上就小編所分享內容了,但願可以幫助到你們