我有一个典型的情况,我需要生成一批随机数。我已经使用了一个环,其在每次通过生成100枚随机数:使用srand避免重复种子生成()
for(int i=0; i<npasses; i++)
{
srand(time(NULL)); //Initialize seed
for(int j=0; j<100; j++)
printf("%d ", rand()%10);
printf("\n"); //New line after 100 numbers
}
现在,内循环执行在小于一毫秒。结果,time()的值没有变化。这重新初始化种子(srand())相同的值和我的随机数字REPEATED ..
任何人都可以提出一个解决方法/修复。
能否请您给一些示例代码? –
这不仅是不必要的,而且很危险。大多数发生器现在都有超过32位的周期,并且使用32位种子重复播种会限制您仅使用前几个有限数量的序列。在程序开始时调用srand()一次,并且只调用一次。 –