为什么在使用 rand 生成随机数之前需要调用 srand

cmi*_*idi 0 c c++

需要在行上调用 srandsrand(time(NULL));来设置种子rand()以生成随机数。我的问题是需要什么种子?

Sou*_*osh 5

rand()函数是一个伪随机数生成器,即

rand() 函数返回 0 到 RAND_MAX 范围内的伪随机整数

伪随机数的产生取决于种子。如果您没有提供不同的值作为seed,您将在应用程序的每次调用中获得相同的随机数。这就是为什么,srand()用于随机化种子本身。

最常见的做法:srand(time(NULL))[适用于单次运行评估]。

什么是需要的[明确]种子?

值得一提,来自手册页

如果未提供种子值,则 rand() 函数将自动以 1 值作为种子。