我是 C++ 的新手,所以这个疑问可能看起来很基本,但我不明白 rand() 和 srand() 之间的区别,以及 srand() 中的“种子”是什么意思? 当我写srand(time(NULL))时,它生成随机数是做什么的,time(NULL)在这里做什么?还有,这是什么? 提前致谢
最佳答案
随机数生成器需要一个数字(称为种子)来生成随机数。如果随机数生成器被赋予相同的种子,那么每次它都会生成相同的随机数序列。例如:-
如果您运行该程序,它会生成随机序列 2,78,45,60 。 如果您第二次运行该程序,您将再次获得相同的序列 2,78,45,60。
srand 函数用于更改随机数生成器的种子。通过设置 srand(time(NULL)) ,您将随机数生成器的种子设置为当前时间。每次运行时都这样做程序你会得到不同的随机序列:-
例如,如果您获得 2,78,45,60 ,则第一次运行。 下次你可能会得到 5,3,6,80(取决于当前时间,因为自从上次运行以来时间已经改变,seed 已经改变)
有关更多信息,请参阅这些:-
http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
关于c++ - 在 C++ 中使用 srand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620163/