std::srand
来自 cppreference.cn
定义于头文件 <cstdlib> |
||
void srand( unsigned seed ); |
||
使用值 seed
为 std::rand() 使用的伪随机数生成器播种。
如果在任何 srand()
调用之前使用 std::rand(),则 std::rand() 的行为就像它已经用 srand(1) 播种一样。
每次 std::rand() 使用相同的 seed
播种时,它必须生成相同的值序列。
不保证 srand()
是线程安全的。
目录 |
[编辑] 参数
seed | - | 种子值 |
[编辑] 返回值
(无)
[编辑] 注意
一般来说,伪随机数生成器应该只在程序开始时,在调用任何 rand()
之前播种一次。不应该重复播种,也不应该在每次想要生成一批新的伪随机数时重新播种。
标准做法是使用 std::time(0) 的调用结果作为种子。然而,std::time 返回一个 std::time_t 值,并且不保证 std::time_t 是一个整型。但在实践中,所有主流实现都将 std::time_t 定义为整型,这也是 POSIX 的要求。
[编辑] 示例
运行此代码
可能的输出
Random value on [0, 2147483647]: 1373858591
[编辑] 参阅
生成伪随机数 (函数) | |
std::rand 生成的最大可能值 (宏常量) | |
重新播种每线程随机引擎 (函数) | |
C 文档 for srand
|