用随机整数生成数组 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)
移到循环外。
所以我试图用随机整数填充一个数组。
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)
移到循环外。