c++ - 在 C++ 中使用 srand()

标签 c++

我是 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/

http://www.cplusplus.com/reference/clibrary/cstdlib/srand/

http://www.cplusplus.com/reference/clibrary/ctime/time/

关于c++ - 在 C++ 中使用 srand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620163/

相关文章:

c++ - 使用 3d 对象为图形正确设置坐标

C++ Vector2D类操作

c++ - 将调用哪个重载版本的运算符

C++ 数字输入验证

c++ - 从 char* 缓冲区读取 int32_t 的惯用 cpp14 方法是什么?

c++ - char str[m][n] 和 char *str[] 传递给函数时的区别

c++ - 如何在QTableView 的默认 View 中显示超文本?

c++ - 添加字符串的空结尾

c++ - 使用 OpenGL 或 D3D 绘制椭圆的有效方法

c++ - 错误C++: ‘const_iterator’没有命名类型;