用串行方法实现蒙特卡洛法计算pi值的c++代码
时间: 2023-10-13 15:06:42 浏览: 100
以下是串行方法实现蒙特卡洛法计算pi值的C++代码:
```c++
#include <iostream>
#include <cmath>
#include <random>
#include <chrono>
using namespace std;
int main()
{
// 设置随机数生成器
unsigned seed = chrono::system_clock::now().time_since_epoch().count();
default_random_engine generator(seed);
uniform_real_distribution<double> distribution(-1.0, 1.0);
// 设置模拟次数
int N = 100000000;
// 计数器
int count = 0;
// 进行模拟
for (int i = 0; i < N; i++)
{
double x = distribution(generator);
double y = distribution(generator);
if (x * x + y * y <= 1)
count++;
}
// 计算pi值
double pi = 4.0 * count / N;
// 输出结果
cout << "pi = " << pi << endl;
return 0;
}
```
该代码使用了C++11的随机数生成器,通过循环进行模拟,并计算最终的pi值。需要注意的是,模拟次数N越大,计算结果越接近真实值,但同时也会增加计算时间。
阅读全文