解释c++中normal_distribution
时间: 2023-09-22 16:09:06 浏览: 165
在C++中,`std::normal_distribution`是一个用于生成符合正态分布(又称为高斯分布)随机数的类模板。它是C++标准库中的一部分,位于`<random>`头文件中。
正态分布是一种连续概率分布,其形状呈钟形曲线。它的概率密度函数(PDF)由两个参数决定:均值(mean)和标准差(standard deviation)。`std::normal_distribution`类用于生成符合指定均值和标准差的随机数。
使用`std::normal_distribution`需要以下步骤:
1. 创建一个随机数引擎对象,例如`std::default_random_engine`。
2. 创建一个`std::normal_distribution`对象,并指定均值和标准差。
3. 使用随机数引擎的`operator()`函数并将其作为参数传递给`std::normal_distribution`对象,以生成符合正态分布的随机数。
下面是一个简单的示例代码,演示如何使用`std::normal_distribution`生成正态分布的随机数:
```cpp
#include <iostream>
#include <random>
int main() {
std::default_random_engine generator;
std::normal_distribution<double> distribution(0.0, 1.0); // 均值为0,标准差为1
for (int i = 0; i < 10; ++i) {
double number = distribution(generator);
std::cout << number << std::endl;
}
return 0;
}
```
以上代码将生成10个符合均值为0,标准差为1的正态分布随机数,并将其打印输出。
注意,`std::normal_distribution`生成的随机数是伪随机的,需要使用随机数引擎对象来提供种子以确保随机性。
阅读全文