srand
来自 cppreference.cn
定义于头文件 <stdlib.h> |
||
void srand( unsigned seed ); |
||
使用值 seed
初始化由 rand() 使用的伪随机数生成器。
如果在调用 srand()
之前使用 rand()
,则 rand()
的行为如同使用 srand(1) 初始化一样。
每次使用相同的 seed
初始化 rand()
时,它都必须产生相同的值序列。
srand()
不保证是线程安全的。
内容 |
[编辑] 参数
seed | - | 种子值 |
[编辑] 返回值
(无)
[编辑] 注解
一般来说,伪随机数生成器应该只被初始化一次,在任何调用 rand()
之前,以及程序启动时。不应重复初始化,也不应在每次希望生成一批新的伪随机数时重新初始化。
标准做法是使用调用 time(0) 的结果作为种子。但是,time()
返回一个 time_t 值,并且 time_t
不保证是整数类型。 然而,在实践中,每个主要的实现都将 time_t
定义为整数类型,这也是 POSIX 的要求。
[编辑] 示例
运行此代码
可能的输出
Random value on [0 2147483647]: 1373858591
[编辑] 参考文献
- C17 标准 (ISO/IEC 9899:2018)
- 7.22.2.2 srand 函数 (页: 252-253)
- C11 标准 (ISO/IEC 9899:2011)
- 7.22.2.2 srand 函数 (页: 346-347)
- C99 标准 (ISO/IEC 9899:1999)
- 7.20.2.2 srand 函数 (页: 312-313)
- C89/C90 标准 (ISO/IEC 9899:1990)
- 4.10.2.2 srand 函数
[编辑] 参见
生成伪随机数 (函数) | |
由 rand() 生成的最大可能值 (宏常量) | |
C++ 文档 关于 srand
|