使用c++创建3000个满足正态分布的随机数
时间: 2024-12-23 07:22:06 浏览: 5
在C++中,我们可以使用`<random>`库来生成符合正态分布(也称高斯分布)的随机数。首先,你需要包含必要的头文件,并创建一个正态分布引擎。这里是一个简单的例子,它将创建并打印出3000个正态分布的随机数:
```cpp
#include <iostream>
#include <vector>
#include <random>
#include <cmath>
// 正态分布函数(mean=0, std_dev=1)
double gaussian_random(double mean = 0, double std_dev = 1) {
static const double pi = 3.14159265358979323846;
static std::mt19937 gen(std::chrono::high_resolution_clock::now().time_since_epoch().count()); // 使用Mersenne Twister作为随机数引擎
std::normal_distribution<double> dist(mean, std_dev);
return dist(gen);
}
int main() {
std::vector<double> normal_numbers(3000);
for (size_t i = 0; i < 3000; ++i) {
normal_numbers[i] = gaussian_random();
}
// 打印前几个随机数以验证
for (size_t i = 0; i < 10; ++i) {
std::cout << normal_numbers[i] << " ";
}
std::cout << "\n";
return 0;
}
```
在这个程序中,我们使用了`std::normal_distribution`来生成正态分布的随机数,并通过`gen()`函数调用生成器来获取随机值。注意,为了提高效率,通常会使用`std::mt19937`这种高质量的伪随机数生成器。
阅读全文