OpenMP 程式設計例項(蒙特卡羅演算法)

2021-07-22 19:59:30 字數 1094 閱讀 4988

有關clock()函式

1,clock()函式在標頭檔案#include中

2,clock()函式的返回值型別為clock_t。clock_t其實是long,即長整形。

clock_t是用來儲存時間的資料型別,typedef long clock_t。

3,clock()函式的功能:從程式被呼叫,建立程式程序到clock()函式呼叫之間的cpu時間計時單位

4,常量clocks_per_sec,他表示一秒鐘有多少個時鐘計時單位。

#define clock_per_sec ((clock_t)1000)

5. 注意: (1) clock()函式範圍的時間單位是ms(毫秒)。

(2) 現在的機器運算速度很快,當用clock()函式記錄演算法的效率時,不一定有效,可能得到的結果為0。可以嘗試多次呼叫,這個「多」就自己去嘗試吧//利用蒙特卡羅演算法計算半徑為 1 單元的球體體積:

//(1)序列執行程式為:

#include#include#includeusing namespace std;

int main()

{   long int max=10000000;

long int i,count=0;

double x,y,z,bulk,start_time,end_time;

start_time=clock();

time_t t;

srand((unsigned) time(&t));//函式產生乙個以當前時間開始的隨機種子

for(i=0;i#include#include int main(){ 

long long max=10000000;

long long i,count=0;

double x,y,z,bulk,start_time,end_time;

start_time=clock();

time_t t;

srand((unsigned) time(&t));//函式產生乙個以當前時間開始的隨機種子

#pragma omp parallel for private(x,y,z) reduction(+:count)

for(i=0;i

蒙特卡洛理解

蒙特卡羅演算法並不是一種演算法的名稱,而是是一類隨機方法的統稱。這類方法的特點是,可以在隨機取樣上計算得到近似結果,隨著取樣的增多,得到的結果是正確結果的概率逐漸加大,但在 放棄隨機取樣,而採用類似全取樣這樣的確定性方法 獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。從特性特性來說,我...

蒙特卡洛演算法

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

蒙特卡洛取樣

1.馬爾可夫鏈及其平穩分布 馬爾可夫鏈的定義很簡單,即後乙個狀態只與前面乙個狀態相關 p x t x cdots,x p x t x 2.馬氏鏈定理 如果乙個非週期馬爾可夫鏈具有狀態轉移矩陣 p 且它的任意兩個狀態都是連通的,那麼 mathop limits p n 存在且與 i 無關,記 math...