生成范围内的随机数

时间:2017-10-27 02:38:52

标签: c++ random int range parentheses

所以,我试图使用重载的括号运算符生成1到61之间的随机数,但是由于某些原因,每次运行我的代码时,我都会得到相同的结果49。

以下是我所拥有的:

double operator()() const {
    std::uniform_int_distribution<int> _uniformIntDistribution(1, 61);
    std::default_random_engine _generator;

    double result;    
    result = _uniformIntDistribution(_generator);  

    return result;
}

不确定我做错了什么。有什么建议吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

编译器每次编译时都会使用默认种子,这意味着您将拥有相同的随机数序列。根据您对程序的要求以及您需要数字的“随机”,您可以使用系统当前时间值作为种子。这样每次编译时,随机引擎输出都会改变。这是链接:Notice member function "seed"