C++获取均值为0标准差为1的正态分布随机数
程序员文章站
2024-03-25 21:32:04
...
前几天在实习的项目中,要求用c++获取符合均值为0、标准差为1的正态分布的随机数。百度发现C++的#include 库里有现成的normal_distribution<>。哈哈哈哈高兴坏了…
为了使得程序的每次运行都产生不同的结果加入代码
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
完整代码:
#include <iostream>
#include <random>
#include <chrono>
double getRandom(){
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();//每次程序运行产生不同的随机数
std::default_random_engine gen(seed);
std::normal_distribution<double> n(0, 1); //均值为0,标准差为1
return n(gen);
}
int main(){
for(int i = 0; i < 10; i++){
std::cout << getRandom() << std::endl;
}
return 0;
}
运行结果(程序每次运行得到的随机数都不同)
下一篇: Python绘制正态分布(高斯分布)