使用boost优化/检查绘制随机数

时间:2013-02-05 15:49:59

标签: c++ boost boost-random

我已经完成了Boost的安装,我(最后)在我的程序中使用它。我想要的是能够生成

  1. 0到1之间随机分布的数字
  2. 通常用标准差1
  3. 分配数字

    我已通过以下头文件完成此操作:

    #include <boost/random/normal_distribution.hpp>
    #include <boost/random/uniform_real.hpp>
    #include <boost/random/mersenne_twister.hpp>
    #include <boost/random/variate_generator.hpp>
    
    boost::mt19937 rng;
    
    boost::normal_distribution<double> nd(0.0, 1.0);
    boost::variate_generator< boost::mt19937, boost::normal_distribution<double> > normal(rng, nd);
    
    boost::uniform_real<float> ur(0.0, 1.0);
    boost::variate_generator< boost::mt19937, boost::uniform_real<float> > uniform(rng, ur);
    

    我有两个问题:

    1. 我的方法是否正确?到目前为止似乎一致,因为我得到了理想的行为,似乎其他人也这样做了
    2. 我需要模拟一个非常大的样本,因此我需要大量的随机数,远大于10 ^ 9。有没有一种更有效的方法来实现这一点,而不是简单地调用uniform()和normal()?

0 个答案:

没有答案