用蒙特卡洛方法计算圆周率 c++代码
时间: 2023-08-04 12:12:17 浏览: 97
用蒙特卡洛方法计算圆周率
5星 · 资源好评率100%
以下是使用蒙特卡洛方法计算圆周率的 C++ 代码:
```c++
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int total_points = 1000000; // 总点数
int inside_circle = 0; // 圆内点数
double pi_estimate;
// 初始化随机种子
srand(time(NULL));
for (int i = 0; i < total_points; i++) {
// 生成随机点
double x = (double) rand() / RAND_MAX;
double y = (double) rand() / RAND_MAX;
// 计算到圆心的距离
double distance = sqrt(x * x + y * y);
// 判断点是否在圆内
if (distance <= 1) {
inside_circle++;
}
}
// 计算圆周率
pi_estimate = 4 * (double) inside_circle / total_points;
// 输出结果
cout << "圆周率的估计值为:" << pi_estimate << endl;
return 0;
}
```
在程序中,我们生成了一定数量的随机点,然后将这些点投射到一个单位正方形内。我们检查每个点是否在圆内,如果是,则计入圆内点数。最后,我们根据圆内点数和总点数计算圆周率的估计值。
阅读全文