隨機演算法 蒙特卡羅演算法與拉斯維加斯演算法比較

2021-09-28 17:47:47 字數 953 閱讀 1402

蒙特卡羅(monte carlo)演算法並不是一種特定的演算法,而是對一類隨機演算法的特性的概括。它的名字**於賭城蒙特卡羅,象徵概率。它的基本思想是通過大量隨機樣本,去了解乙個系統,進而得到要計算的值。它非常強大靈活,又相當簡單易懂,很容易實現。

隨機演算法分為兩大類:蒙特卡羅演算法和拉斯維加斯演算法,都是以著名的賭城命名的,且都是通過隨機取樣盡可能找到最優解。

下面就用蒙特卡羅隨機取樣的思想近似求解圓周率ππ

正方形內部有乙個內切的圓,通過簡單計算可知內切圓和正方形的面積比為π/4π/4,因此通過在直角座標系的第一象限隨機取點,統計落在圓內的點,其與總取樣點數的比例即為π/4π/4,將該比例乘以4即可得ππ。示意圖和**如下:

x = random.uniform(0,1.0) #在[0,1]區間均勻地隨機取樣

y = random.uniform(0,1.0)

if(x**2+y**2<=1):

count += 1

return 4.0*count/n #注意4要寫成浮點數的形式,否則結果只保留整數

print calcpi(30000) #取30000個樣本點

一次計算結果為3.15226666667,誤差不到0.5%,且取樣點數越多,結果越接近。

1.蒙特卡羅方法入門

2.知乎:蒙特卡羅演算法是什麼

隨機演算法 蒙特卡羅演算法和拉斯維加斯演算法

隨機演算法分成兩類 上圖區分記憶一下 蒙特卡羅是一類隨機方法的統稱,這裡摘一段知乎大神 鵪鶉 的概括 這些蒙特卡羅的應用,肯定對這些有過深刻的了解之後才能總結出來的,以下摘抄 蒙特卡羅演算法 大家聽說過蒙特卡羅求 吧?就是畫乙個正方形和內切圓,隨機撒點,數一下點落在園內和正方形內的數量之比,就是二者...

蒙特卡羅演算法 與 拉斯維加斯演算法

蒙特卡羅演算法並不是一種演算法的名稱,而是對一類隨機演算法的特性的概括。說 蒙特卡羅演算法打敗武宮正樹 這個說法就好比說 我被乙隻脊椎動物咬了 是比較火星的。實際上是zen的演算法具有蒙特卡羅特性,或者說它的演算法屬於一種蒙特卡羅演算法。那麼 蒙特卡羅 是一種什麼特性呢?我們知道,既然是隨機演算法,...

隨機演算法 蒙特卡羅演算法

那麼我們可以理解為,隨機選取一些離散點集合,保證以一定的概率求出近似於 值的最優解,高等數學中求近似解,往往是極限時,為任意小的常數且不為0 這裡提到了根據蒙特卡羅演算法原理,演算法經過多次執行可以得到近似於 的最優解。蒙特卡羅monte carlo 又稱隨機抽樣或統計試驗方法,是以概率和統計理論方...