4 蒙特卡羅演算法求圓周率PI

2021-07-05 06:00:28 字數 1040 閱讀 3524

蒙特卡羅演算法的典型應用之一為求圓周率pi問題。

思想:乙個半徑r=

1 的圓,其面積為:s=

pi∗r

2=pi

/4

乙個邊長r=

1 的正方形,其面積為:s=

r2=1

那麼建立乙個座標系,如果均勻的向正方形內撒點,那麼落入圓心在正方形中心,半徑為1的圓內的點數與全部點數的比例應該為pi

/4,根據概率統計的規律,只要撒的點足夠多,那麼便會得到圓周率pi

的非常近似的值。

使用蒙特卡羅演算法計算圓周率有下面兩個關鍵點:

均勻撒點:在c語言中可用隨機函式來實現,產生[0

,1) 之間隨機的座標值(x

,y) ;

區域判斷:位於圓內的點的特性是其與圓心的距離小於等於1,這樣可用x2

+y2<=

1 來判斷;

概率演算法是依照概率統計的思路來求解問題的演算法,它往往不能得到問題的精確解。

執行的基本過程如下:

將問題轉換為相應的幾何圖形s,s的面積是容易計算的,問題的結果往往對應幾何圖形某一部分s1的面積;

然後,向幾何圖形中隨機撒點;

統計幾何圖形s和s1中的點數,根據面積關係得結果;

判斷精度,滿足要求則輸出,不滿足則返回(2);

概率演算法大致分為以下4類:

數值概率演算法

蒙特卡羅(monte carlo)演算法

拉斯維加斯(las vegas)演算法

舍伍德(sherwood)演算法

#include 

#include

#include

using

namespace

std;

double montepi(int n)

//for

pi = 4.0 * sum / n;

return pi;

}int main()

system("pause");

return

0;}

Python 蒙特卡羅計算圓周率

蒙特卡羅方法於20世紀40年代美國在第二次世界大戰中研製原子彈的 曼哈頓計畫 計畫的成員s.m.烏拉姆和j.馮 諾伊曼首先提出。數學家馮 諾伊曼用馳名世界的賭城 摩納哥的monte carlo 來命名這種方法,為它蒙上了一層神秘色彩。在這之前,蒙特卡羅方法就已經存在。1777年,法國數學家布豐 ge...

求圓周率pi的怪異程式 祖沖之圓周率演算法絕技之迷

據說華羅庚曾講過乙個故事,說 有個教書先生喜歡喝酒,一天,他叫學生背圓周率,自己卻提壺酒到山上廟裡找老和尚喝酒去了。有個聰明的學生把圓周率編了個 打油詩 山巔一寺一壺酒,爾樂苦煞吾,把酒吃 酒殺爾殺不死,樂爾樂 其實是 3.1415926535897932384626 的諧音。先生一回來,學生居然背...

蒙特卡洛演算法 投點求圓周率Pi

蒙特卡洛演算法是以概率和統計的理論 方法為基礎的一種計算方法,將所求解的問題同一定的概率模型相聯絡 用電子計算機實現統計模擬和抽樣,以獲得問題的近似解,故又稱統計模擬法或統計實驗法。蒙特卡洛演算法 蒙特卡洛是美國摩納哥的乙個城市,以賭博聞名於世。蒙特卡洛演算法借用這一城市的名稱是為了象徵性的表明該方...