在C中播种rand()与时间无关

时间:2014-12-21 15:00:18

标签: c random

我正在使用stdlib生成随机数。我知道有更好的发电机,但stdlib对我来说足够了。

我在做:

while(condition){
    sleep(1);
    srand(time(NULL));
    r=rand();
}

它在一个循环中,所以我需要sleep(1)或种子是相同的,并且数字重复。事实是,我需要生成数千甚至数百万的数字,如果我每个数字等待1秒,则需要很长时间。 那么还有另一种独立于种子的方式吗?

1 个答案:

答案 0 :(得分:10)

您只需要播种一次(启动时),然后生成任意数量的数字。不要为每个号码重新种植一次 - 这是毫无意义的,你基本上必须生成随机种子来生成随机数(这首先违背了使用PRNG的目的)。 / p>