生成具有随机整数C的数组

时间:2018-08-28 06:30:02

标签: c arrays random srand

所以我试图用随机整数填充数组。

for (int i = 0; i < 2; i++){
    srand(time(NULL));
    array[i]=rand()%30; }`

到目前为止,这是我的代码。我目前两次获得相同的随机数。想知道是否有解决办法吗?

2 个答案:

答案 0 :(得分:2)

您在循环中多次植入PRNG。只能做一次。

通过在循环中调用srand,可以重置种子。而且,如果您将相同的值传递给srand,则对rand的下一次调用将生成完全相同的值。

答案 1 :(得分:1)

rand()通常使用PRNG,该PRNG使用种子生成随机数。 srand ( time(NULL) );用于为伪随机数生成器提供种子。

当前,time()的时间粒度为1秒,因此,如果您在粒度周期内多次用相同的值[{time(NULL);]播种PNRG,则将调用rand()产生相同的随机数。

srand(time(NULL)移到循环之外。