在C中独立于时间设定rand()

在C中独立于时间设定rand(),c,random,C,Random,我正在使用stdlib生成随机数。我知道有更好的发电机,但stdlib对我来说已经足够了 我正在做: while(condition){ sleep(1); srand(time(NULL)); r=rand(); } 它在一个循环中,所以我需要睡眠(1),或者种子是相同的,数字是重复的。事实上,我需要生成数千个或数百万个数字,如果每个数字等待1秒,则需要很长时间。 所以有另一种独立于时间播种的方式吗?您只需要在启动时播种一次,然后生成任意数量的数字。不要为每个数字重新

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

我正在做:

while(condition){
    sleep(1);
    srand(time(NULL));
    r=rand();
}
它在一个循环中,所以我需要
睡眠(1)
,或者种子是相同的,数字是重复的。事实上,我需要生成数千个或数百万个数字,如果每个数字等待1秒,则需要很长时间。
所以有另一种独立于时间播种的方式吗?

您只需要在启动时播种一次,然后生成任意数量的数字。不要为每个数字重新设定种子一次-这是毫无意义的,而且你基本上必须生成随机种子来生成随机数(这与最初使用PRNG的目的背道而驰)。

你只需要为PRNG设定种子一次。在某些系统上,你可以从其他随机源(例如从