演算法之美 1 蒙特卡洛方法計算pi

2022-03-18 14:45:32 字數 597 閱讀 3612

基本思想: 利用圓與其外接正方形面積之比為pi/4的關係,通過產生大量均勻分布的二維點,計算落在單位圓和單位正方形的數量之比再乘以4便得到pi的近似值。樣本點越多,計算出的資料將會越接近真識的pi(前提時樣本是「真正的」隨機分布)。

蒙特卡羅(monte carlo)演算法計算圓周率的主要思想:給定邊長為r的正方形,畫其內切圓,然後在正方形內隨機打點,設點落在圓內的概為p,則根據概率學原理:    p = 圓面積 / 正方形面積 = pi * r * r / 2r * 2r = pi / 4。即 pi=4p。這樣,當隨機打點足夠多時,統計出來的概率就非常接近於pi的四分之一了。

#include #include 

using

namespace

std;

intmain()

if (i%(max_times/100)==0

)

}double pi = 4.0*in /max_times;

cout

<< "

\npi=

"<< pi

}

實現了一下,感覺時間用的有點長。。。

參考:

erlang蒙特卡洛方法求Pi

兩個引數r,n分別代表範圍和試驗次數。思想是正方形內接圓,往正方形上扔飛鏢,落在圓內計數加一,最終拿計數和總試驗次數作比。r 1m,n 1m 結果3.143856,3.140464,3.141572,取平均為3.141964 如下 module ex7 import math,sqrt 1,pow ...

蒙特卡洛演算法

從今天開始要研究sampling methods,主要是mcmc演算法 contents 1.蒙特卡洛介紹 2.蒙特卡洛的應用 3.蒙特卡洛積分 1.蒙特卡洛介紹 蒙特卡羅方法 monte carlo method 也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的 發展和電子計算機的發明,而被...

蒙特卡洛演算法

問題描述 在數值積分法中,利用求單位圓的1 4的面積來求得pi 4從而得到pi。單位圓的1 4面積是乙個扇形,它是邊長為1單位正方形的一部分。只要能求出扇形面積s1在正方形面積s中佔的比例k s1 s就立即能得到s1,從而得到pi的值。怎樣求出扇形面積在正方形面積中佔的比例k呢?乙個辦法是在正方形中...