计算pai 的近似值,保留三位小数输出,输出结果为PI=3.141
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
// https://blog.csdn.net/weixin_57709996/article/details/123440399
int main(void){
double PI;
int num,times=0,i=0;
srand(time(NULL));
printf("请输入要模拟的次数:");
scanf("%d",&num); // 从输入获取模拟的次数
while(i<num){
// https://blog.csdn.net/qq_42681507/article/details/104606408
// 产生一个在[0,1]之间的点
double x = rand()*1.0/RAND_MAX;
double y = rand()*1.0/RAND_MAX;
// 如果这个点距离原点的距离小于等于1.0,则说明在圆内或圆上
// https://zhuanlan.zhihu.com/p/77516800
double distance = sqrt((x-0)*(x-0)+(y-0)*(y-0));
// 此时将在圆上和圆内的次数+1
if(distance <=1.0){
times++;
}
i++; // 实际模拟次数+1
}
// 用在圆上和圆内的次数除以总模拟次数,再乘以4,则计算出PI的近似值
PI = times*1.0/num*4;
printf("PI的近似值为:%.3f\n",PI);
return 0;
}