欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}

运行结果(程序每次运行得到的随机数都不同)
C++获取均值为0标准差为1的正态分布随机数
C++获取均值为0标准差为1的正态分布随机数