std::srand
來自 cppreference.com
定義於標頭檔案 <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
|