【发布时间】:2014-11-30 23:21:31
【问题描述】:
我试图从字典中选择一个随机单词,而不是给我随机数字,每次我运行程序时数字都会依次增加,例如,如果我运行一次 17010,我会得到大约 17025 或所以下一次运行。
这是我的代码: 如果有帮助,字典的长度约为 44000。
//I initialize srand(time(0)) in my main function
int numRand = std::rand()%Dictionary.size();
std::string wordOne = Dictionary[numRand].getWord();
sylCount -= Dictionary[numRand].getSylls();
提前致谢!
【问题讨论】:
-
忘记调用
srand()为随机数引擎播种?例如。在您的main()中调用一次srand(time(NULL));。 -
不要使用
rand(),这是最糟糕的 PRNG 之一。使用来自 Boost 的不错的 PRNG,例如 mt19937。 -
17010 和 17025 不连续
-
@pjs:
mt19337不需要 Boost。它在std::中,只需包含<random>。