c++正态分布图
时间: 2023-07-01 19:14:09 浏览: 225
生成正态分布图可以使用一些可视化库,比如matplotlib(Python)、ggplot2(R)等。在C++中,可以使用GNU Scientific Library(GSL)库来生成正态分布图。下面是一个简单的例子:
```cpp
#include <iostream>
#include <cmath>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>
int main()
{
const int n = 1000; // 生成1000个数据点
gsl_rng* r = gsl_rng_alloc(gsl_rng_default); // 生成随机数生成器
gsl_rng_set(r, time(NULL)); // 设置随机数种子为当前时间
double mu = 0.0; // 均值
double sigma = 1.0; // 标准差
double x[n], y[n];
for (int i = 0; i < n; i++)
{
x[i] = i;
y[i] = gsl_ran_gaussian(r, sigma) + mu; // 生成正态分布随机数
}
gsl_rng_free(r); // 释放随机数生成器
// 生成正态分布图
std::cout << "set terminal png\n";
std::cout << "set output 'normal_distribution.png'\n";
std::cout << "plot '-' with lines\n";
for (int i = 0; i < n; i++)
{
std::cout << x[i] << " " << y[i] << "\n";
}
std::cout << "e\n";
return 0;
}
```
这段代码使用了GSL库中的`gsl_rng`和`gsl_ran_gaussian`函数来生成正态分布随机数,然后使用了gnuplot来生成正态分布图。
在Linux系统下,可以使用以下命令来编译并执行程序:
```
g++ normal_distribution.cpp -o normal_distribution -lgsl -lgslcblas
./normal_distribution | gnuplot
```
这会生成一个名为`normal_distribution.png`的图像文件。
阅读全文