所以,我试图使用重载的括号运算符生成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;
}
不确定我做错了什么。有什么建议吗?
提前致谢!
答案 0 :(得分:0)
编译器每次编译时都会使用默认种子,这意味着您将拥有相同的随机数序列。根据您对程序的要求以及您需要数字的“随机”,您可以使用系统当前时间值作为种子。这样每次编译时,随机引擎输出都会改变。这是链接:Notice member function "seed"