名稱空間
變體
操作

std::srand

來自 cppreference.com
< cpp‎ | 數值‎ | 隨機
 
 
 
 
定義於標頭檔案 <cstdlib>
void srand( unsigned seed );

使用值 seedstd::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 的要求。

[編輯] 示例

#include <cstdlib>
#include <ctime>
#include <iostream>
 
int main() 
{
    std::srand(std::time(0)); // use current time as seed for random generator
    std::cout << "Random value on [0, " << RAND_MAX << "]: " << std::rand() << '\n';
}

可能的輸出

Random value on [0, 2147483647]: 1373858591

[編輯] 參閱

生成偽隨機數
(函式) [編輯]
std::rand 生成的最大可能值
(宏常量) [編輯]
重新播種每執行緒隨機引擎
(函式) [編輯]
C 文件 for srand