用C语言写一份程序,从0~100的均匀分布中进行抽样,获取其均值,重复1000次,并且输出均值在40~60之间以0.2为区间上的概率分布
时间: 2024-10-02 10:02:51 浏览: 28
在C语言中编写这样的程序需要几个步骤,首先我们要生成随机数,然后计算均值,最后统计落在特定区间的次数。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 100
#define INTERVAL 0.2
#define SAMPLES 1000
double random_between(int min, int max) {
return (double)(min + rand() % (max - min + 1)) / RAND_MAX;
}
double calculate_average(double *data, int size) {
double sum = 0;
for (int i = 0; i < size; i++) {
sum += data[i];
}
return sum / size;
}
int count_in_range(double *data, int size, double lower, double upper) {
int count = 0;
for (int i = 0; i < size; i++) {
if (lower <= data[i] && data[i] < upper) {
count++;
}
}
return count;
}
int main() {
srand(time(0)); // 初始化随机种子,保证每次运行结果不同
double* sample_data = malloc(SAMPLES * sizeof(double));
double mean = 0;
for (int i = 0; i < SAMPLES; i++) {
sample_data[i] = random_between(0, MAX_NUM);
mean += sample_data[i]; // 每次迭代都累加
}
mean /= SAMPLES;
printf("Mean value: %.2f\n", mean);
int in_interval_count = count_in_range(sample_data, SAMPLES, 40, 60);
double probability = (double)in_interval_count / SAMPLES;
printf("Probability of being in [40, 60]: %.2f%%\n", probability * 100);
free(sample_data); // 释放内存
return 0;
}
```
这个程序首先初始化一个大小为`SAMPLES`的数组来存储随机样本,然后计算它们的平均值。接着,它检查哪些样本位于40到60的范围内,并计算该范围内的样本占总数的比例。
阅读全文