用C语言画正态分布图
时间: 2024-10-08 18:11:36 浏览: 48
在C语言中直接绘制图形通常不是它的强项,因为它主要用于编写系统级程序或底层任务,而不是图形用户界面。然而,如果你是在说如何用C语言生成正态分布数据并可能通过一些可视化库如gnuplot或matplotlib间接地“画”出图形,可以这样做:
首先,你需要用C语言生成一组随机数,模拟正态分布。你可以利用高斯分布的概率密度函数(PDF)公式,然后使用随机数生成器(如`<stdlib.h>`中的`rand()`函数配合`<time.h>`中的`srand()`初始化随机种子)。以下是一个简单的例子,展示了如何生成平均值为0,标准差为1的正态分布随机数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double gaussian(double mu, double sigma) {
double u = (double)rand() / RAND_MAX;
double v = (double)rand() / RAND_MAX;
return mu - sigma * sqrt(-2.0*log(u)) * cos(2.0*M_PI*v);
}
void draw_normal_distribution(int n, double mean, double std_dev) {
srand(time(NULL)); // 初始化随机种子
for (int i = 0; i < n; ++i) {
printf("%.2f ", gaussian(mean, std_dev));
}
printf("\n");
}
int main() {
int samples = 1000; // 生成的样本数量
double mean = 0.0;
double std_dev = 1.0;
draw_normal_distribution(samples, mean, std_dev);
return 0;
}
```
然后你可以将这些数值保存到文件中,或者直接通过文本处理工具展示它们。为了真正看到正态分布图,你需要用其他绘图工具(如 gnuplot、R、Python等)读取这些数据。
阅读全文