用蒙特卡洛计算圆周率c语言
时间: 2023-09-01 12:08:52 浏览: 158
用蒙特卡洛方法计算圆周率
5星 · 资源好评率100%
下面是用蒙特卡洛方法计算圆周率的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n = 1000000; // 抛点的总数
int count = 0; // 落在圆内的点数
double x, y; // 抛点的坐标
srand(time(NULL)); // 初始化随机数种子
for (int i = 0; i < n; i++) {
x = (double)rand() / RAND_MAX; // 生成 [0,1) 之间的随机数
y = (double)rand() / RAND_MAX;
if (x * x + y * y <= 1.0) { // 判断是否在圆内
count++;
}
}
double pi = 4.0 * count / n; // 计算圆周率
printf("pi = %f\n", pi);
return 0;
}
```
该程序抛出 $n$ 个点,坐标随机生成在正方形区域 $[0,1) \times [0,1)$ 内,通过计算落在圆内的点数 $count$,再根据圆的面积公式 $S=\pi r^2$,其中 $r=1$,可以得到圆周率 $\pi$ 的近似值 $\pi \approx 4 \times \frac{count}{n}$。
阅读全文