用随机整数生成数组 C

Generating array with random integers C

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

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

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

您在循环中多次播种 PRNG。应该只做一次。

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

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

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

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