蒙特卡洛方法 | 计算π的近似值
2024-11-17 10:12:16
发布于:北京
蒙特卡洛方法计算π的近似值
因为用的是随机值 所以结果会有点不同
#include <bits/stdc++.h>
using namespace std;
int main() {
const int num_points = 100000000; // 试验次数,增加这个值可以提高精度
int inside_circle = 0;
srand(time(0)); // 初始化随机数种子
for (int i = 0; i < num_points; ++i) {
double x = static_cast<double>(rand()) / RAND_MAX;
double y = static_cast<double>(rand()) / RAND_MAX;
// 检查点(x, y)是否在单位圆内
if (x * x + y * y <= 1.0) {
++inside_circle;
}
}
// 计算圆周率π的近似值
double pi = 4.0 * static_cast<double>(inside_circle) / num_points;
cout << "Estimated value of Pi: " << setprecision(15) << pi << std::endl;
return 0;
}
时间复杂度:O(100,000,000)
空间复杂度:O(1)
看到就点个赞吧(bushi
这里空空如也
有帮助,赞一个