重复生成的均匀随机数

时间:2015-03-19 15:54:36

标签: c++ visual-studio random

我试图从0.0到1.0生成100个均匀随机变量。 我使用基于时间的种子来生成它,但生成的数字似乎重复了一些,然后再改为另一个。有没有更好的方式来模拟而不重复?

输出如下: 0.33456,0.33456,0.33456,0.11256,0.11256,0.11256,0.94092,0.94092,......

Real UniformDistributionGenerator(double range_from, double range_to) {
    Real uniform_r_v = 0.0;
    unsigned seed = std::chrono::high_resolution_clock::now().time_since_epoch().count();
    std::mt19937 generator(seed);
    std::uniform_real_distribution<double> distribution(range_from, range_to);
    uniform_r_v = distribution(generator);
    return uniform_r_v;
}

1 个答案:

答案 0 :(得分:0)

最简单的解决方案:static std::mt19937 generator(seed); 每个程序运行一次播种,应该是。