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 (p: 252-253)
- C11 標準 (ISO/IEC 9899:2011)
- 7.22.2.2 The srand function (p: 346-347)
- C99 標準 (ISO/IEC 9899:1999)
- 7.20.2.2 The srand function (p: 312-313)
- C89/C90 標準 (ISO/IEC 9899:1990)
- 4.10.2.2 The srand function
[編輯] 另請參閱
生成偽隨機數 (函式) | |
由 rand() 生成的最大可能值 (宏常量) | |
C++ 文件 for srand
|