总是由rand()给出的重复数字

我一直使用rand(),它总是连续几次给我相同的值。 我尝试在循环之前使用srand(time(NULL)),但它没有帮助…

通常,您获得重复数字的唯一原因是,如果您循环中使用具有相同种子值的srand (并且time(0) 在紧密循环中为您提供相同的值)。

当然,一个真正的随机数序列可以给你重复的数字。 即使是那些不这样做的人,如果你正在严厉地操纵它,也会反复给你相同的数字。

例如,如果算法倾向于支持返回值低端的更改,则rand() / 100000可能是一个不太好的事情,因为rand()序列为100000, 164534, 186410, 199999将给出你是rand() % 100000rand() % 100000在这种情况下可能是更好的选择,如果连续数字之间的变化是你的价值)。

当然,如果没有看到你的实际代码,这样的猜测可能是我们能做的最好的。 与大多数问题报告一样,您最好的一点就是提供一个展示问题的小型完整样本。