利用openmp实现蒙特卡洛方法计算pi
#include "stdafx.h"
#include<stdio.h>
#include<omp.h>
#include<stdlib.h>
#include<time.h>
#define MaxSize 204800
int _tmain(int argc, _TCHAR* argv[])
{
double x,y;
clock_t start,finish;
double count=0;
double total_time;
srand((unsigned)time(NULL));
start = clock();
#pragma omp parallel for reduction(+:count)
for(int i=0;i<MaxSize;i++){
x=rand()/(double)RAND_MAX;
y=rand()/(double)RAND_MAX;
if((x*x+y*y)<1){
count++;
}
}
finish = clock();
total_time = (double)(finish-start);
double pi=(double)(count/MaxSize)*4.0;
printf("%lf\n",pi);
printf("%lf",total_time);
return 0;
}