C++使用随机算法计算π,输出结果精确到小数点后 2 位
时间: 2023-12-18 07:03:42 浏览: 94
C++ 算法求 π 的值
4星 · 用户满意度95%
C++中可以使用蒙特卡罗方法来估算圆周率π的值。具体步骤如下:
1. 假设有一个正方形和一个内切圆形,圆心为正方形中心,半径为正方形边长的一半;
2. 在正方形内随机生成若干个点,并统计落在圆内的点数;
3. 根据统计结果估算圆周率π的值,即 π ≈ 4 * 圆内点数 / 总点数。
下面是使用C++实现上述算法的代码:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
srand(time(NULL)); // 设置随机种子
int total = 1000000; // 总点数
int inside = 0; // 圆内点数
double x, y;
for (int i = 0; i < total; i++) {
x = rand() / (double)RAND_MAX; // 随机生成x坐标
y = rand() / (double)RAND_MAX; // 随机生成y坐标
if (x * x + y * y <= 1) inside++; // 判断点是否在圆内
}
double pi = 4.0 * inside / total; // 计算圆周率π的估计值
cout.precision(2); // 设置输出精度为小数点后2位
cout << "pi = " << fixed << pi << endl; // 输出π的估计值
return 0;
}
```
注意,由于随机数生成的不确定性,每次运行得到的结果可能不同,但是随着总点数的增加,π的估计值会越来越准确。
阅读全文