srand
来自cppreference.com
在标头 <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 The srand function (第 252-253 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.22.2.2 The srand function (第 346-347 页)
- C99 标准(ISO/IEC 9899:1999):
- 7.20.2.2 The srand function (第 312-313 页)
- C89/C90 标准(ISO/IEC 9899:1990):
- 4.10.2.2 The srand function
参阅
产生一个伪随机数 (函数) | |
rand() 生成的最大可能值 (宏常量) |