python項目實戰:實現蒙特卡羅方法,求物體陰影面積

前言python

蒙特卡羅方法是指使用隨機數(或更常見的僞隨機數)來解決不少計算問題的方法。與它對應的是肯定性算法。蒙特·卡羅方法在金融工程學,宏觀經濟學,計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)等領域應用普遍。算法

上面的是百度百科上面的介紹,接下來讓咱們一塊兒來看看蒙特卡羅方法在Python的中的應用吧,具備必定的參考價值,代碼以下:工具

 

 

 

以上就是咱們作一個簡單的圓周率的近似計算,在這個過程當中咱們要用到隨機數,所以須要先使用import numpy as np導入numpy庫。學習

在上面的程序中咱們用8000000個隨機數進行投放,這樣獲得的結果會更精確一些,運行程序須要必定的時間,最終獲得的結果以下:編碼

 

 

 

學習歷來不是一我的的事情,要有個相互監督的夥伴,工做須要學習python或者有興趣學習python的夥伴能夠私信回覆小編「學習」 獲取資料,一塊兒學習blog

接下來進入正題,你隨便在一個畫圖工具上描繪一個陰影圖片,咱們就能夠用蒙特卡羅來求它的陰影面積,以下圖:圖片

 

 

 

上面的圖形是不規則的,咱們只需知道在投放大量隨機數的狀況下,隨機數在黑色部分出現的機率,再用總面積相乘便可估算黑色部分的面積。咱們知道,黑色的rgb編碼爲(0,0,0),因此須要統計rgb編碼爲(0,0,0)時隨機數的投放機率便可。import

 

 

 

上面的代碼可分爲兩部分,第一個for後面是用蒙特卡羅方法得到的面積的估計值,第二個for後面是用遍歷全部像素點的方法得到的面積的精確值,得到兩個輸出後進行對比。隨機數

 

 

 

咱們在上面的程序中採用了9000000個隨機數,能夠看出兩個輸出結果相差並不大。百度

以上就小編所分享內容了,但願可以幫助到你們

相關文章
相關標籤/搜索