小编Ash*_*hoo的帖子

避免使用srand()重复生成种子

我有一个典型的情况,我需要生成一批随机数.我使用了一个循环,每次传递产生100个随机数:

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
}
Run Code Online (Sandbox Code Playgroud)

现在,内循环在不到一毫秒的时间内执行.结果,time()的值没有变化.这会将种子(srand())重新初始化为相同的值,并且我的随机数是重复的.

任何人都可以建议解决方法/修复.

c random algorithm srand

0
推荐指数
1
解决办法
789
查看次数

标签 统计

algorithm ×1

c ×1

random ×1

srand ×1