#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main() {
int total_points = 1000000; // 设置总点数
int points_in_circle = 0; // 落在圆内的点数
double x, y, distance; // 用于存储随机点的坐标和距离
double pi_estimate; // 圆周率的估算值
double l;
int i;
// 初始化随机数生成器
srand(time(NULL));
for(i=1;i<=total_points;i++){
x = ((double)rand() / RAND_MAX) * 2 - 1; // 生成-1到1之间的随机数作为x坐标
y = ((double)rand() / RAND_MAX) * 2 - 1; // 生成-1到1之间的随机数作为y坐标
l = sqrt( fabs(x) * fabs(x) + fabs(y) * fabs( y ) );
if(l<=1){
points_in_circle = points_in_circle + 1;
};
};
pi_estimate = 4.0 * points_in_circle / total_points ;
printf("%lf", pi_estimate );
return 0;
}
使用面积法估计圆周率的卡罗蒙特方法如上