C++生成呈正态分布的随机数据
时间: 2023-12-04 18:04:43 浏览: 75
C++实现正态随机分布的方法
在C++中,可以使用C++11标准库中的 `<random>` 头文件来生成呈正态分布的随机数据。具体实现步骤如下:
1. 引入 `<random>` 头文件和 `<vector>` 头文件。
2. 创建一个 `std::default_random_engine` 引擎对象和一个 `std::normal_distribution` 分布对象。
3. 使用引擎对象和分布对象生成随机数。
4. 将生成的随机数存储在 `std::vector` 容器中。
下面是一个示例代码:
```cpp
#include <iostream>
#include <random>
#include <vector>
int main() {
// 创建随机数引擎对象和正态分布分布对象
std::default_random_engine generator;
std::normal_distribution<double> distribution(0.0, 1.0);
std::vector<double> random_values;
// 生成随机数
for (int i = 0; i < 1000; i++) {
double random_value = distribution(generator);
random_values.push_back(random_value);
}
// 输出随机数
for (double value : random_values) {
std::cout << value << " ";
}
return 0;
}
```
在上面的代码中,我们创建了一个均值为0,标准差为1的正态分布分布对象。然后使用 `std::default_random_engine` 引擎对象 `generator` 和正态分布分布对象 `distribution` 生成随机数。最后,我们将生成的随机数存储在 `std::vector` 容器中,并输出这些随机数。
需要注意的是,我们使用的是默认的随机数引擎对象 `std::default_random_engine`,这个引擎对象的随机性可能不足以满足一些高安全性的应用。在这种情况下,我们可以使用更加安全的引擎对象,比如 `std::mt19937` 引擎。
阅读全文