C语言代码:计算圆周率 使用模特卡罗方法(模拟法),模拟撒点100000次,计算圆周率π 输入格式: 一个整数,表示随机数种子 输出格式: 计算的π值,结果小数点后保留5位数字
时间: 2024-05-13 10:15:57 浏览: 99
以下是使用 C 语言编写的计算圆周率的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100000
int main()
{
int seed, i, count = 0;
double x, y, pi;
printf("请输入一个整数作为随机数种子:");
scanf("%d", &seed);
srand(seed); // 初始化随机数种子
for (i = 0; i < N; i++)
{
x = (double)rand() / RAND_MAX; // 生成一个0~1之间的随机数
y = (double)rand() / RAND_MAX;
if (x * x + y * y <= 1) // 判断点是否在圆内
count++;
}
pi = 4.0 * count / N; // 计算π值
printf("计算的圆周率π值为:%.5f\n", pi); // 输出结果,保留5位小数
return 0;
}
```
代码说明:
1. 宏定义了模拟次数 N,可以根据需要自行修改。
2. 通过 `scanf()` 函数输入随机数种子,并通过 `srand()` 函数初始化随机数种子。
3. 循环模拟 N 次,每次生成两个 0~1 之间的随机数,判断这个点是否在圆内,如果在圆内,则 count 计数器加一。
4. 最后计算 π 值,输出结果,保留 5 位小数。
注意事项:
1. 由于模拟次数 N 越大,计算结果越接近圆周率 π,但计算时间也会越长,因此需要根据实际情况选择合适的模拟次数。
2. 由于随机数生成的种子影响着模拟结果,因此建议使用不同的种子进行多次模拟,取平均值作为最终结果。
阅读全文