蒙特卡羅演算法 PI

2021-08-13 20:42:40 字數 513 閱讀 7329

原理: 如果均勻向正方形內撒點,那麼落入陰影部分的點數與全部的點數之比是s陰影/s正 = pi / 4  只要撒入的點越多,值越相近

演算法實現:

1、均勻撒點,使用隨機函式來實現,產生【0,1】之間的隨機數的座標值【x,y】

2、區域判斷:圖中陰影部分特點是座標原點的離座標原點小於等於1  x *x + y * y  <= 1

//#include "stdafx.h"

#include #include #include #include using namespace std;

double motenpi(int n)

} pi = 4.0 *sum / n;

return pi;

}int main(int argc, char* argv)

{ int n;

double pi;

cout<<"輸入撒點的個數: "<>n;

pi = motenpi(n);

std::cout<<"pi = "<

蒙特卡羅演算法

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

蒙特卡羅演算法

演算法原理 蒙特卡羅方法也稱統計模擬方法,是1940年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以概率統計理論為指導的數值計算方法。是指使用隨機數 或更常見的偽隨機數 來解決很多計算問題的方法。原理大致如下圖所示 很簡單,舉個例子就是扔石子到方形區域,區域內有個圓,圓內石子的比例即為圓...

蒙特卡羅演算法

構造描述概率過程 實現從已知概率分布抽樣 隨機數是實現模擬的工具 建立各種估計量 得到無偏估計 clear dt 1 365.0 一天的年單位時間 s0 20 在初始時刻的 程式中假設 r 0.031 期望收益率 sigma 0.6 波動率 0.6 expterm r dt 漂移項dt stddev...