在本教程中,我們將借助示例了解 C++ srand() 函數。
C++ 中的srand()
函數為rand()
函數使用的偽隨機數生成器提供種子。它在cstdlib 頭文件中定義。
示例
#include<iostream>
#include<cstdlib>
using namespace std;
int main() {
// set seed to 10
srand(10);
// generate random number
int random = rand();
cout << random;
return 0;
}
// Output: 71
srand() 語法
用法:
srand(unsigned int seed);
參數:
srand()
函數采用以下參數:
- seed- 類型的種子值
unsigned int
返回:
srand()
函數不返回任何值。
srand() 原型
cstdlib 頭文件中定義的srand()
原型為:
void srand(unsigned int seed);
這裏,srand()
參數seed
被rand()
函數用作種子。
C++的工作srand()
srand()
函數設置種子rand()
函數。種子為rand()
函數是1默認。
這意味著如果在 rand()
之前沒有調用 srand()
,則 rand()
函數的行為就像是使用 srand(1)
播種一樣。
但是,如果在 rand 之前調用 srand()
函數,則 rand()
函數會生成一個帶有由 srand()
設置的種子的數字。
注意:"seed" 是偽隨機數序列的起點。要了解更多信息,請訪問此鏈接堆棧溢出.
示例 1:C++ srand()
#include<iostream>
#include<cstdlib>
using namespace std;
int main() {
int random = rand();
// srand() has not been called), so seed = 1
cout << "Seed = 1, Random number = " << random << endl;
// set seed to 5
srand(5);
// generate random number
random = rand();
cout << "Seed = 5, Random number = " << random << endl;
return 0;
}
輸出
Seed = 1, Random number = 41 Seed = 5, Random number = 54
srand() 標準實踐
- 偽隨機數生成器不應該在每次我們生成一組新數字時播種,即它應該播種隻有一次在程序開始時,在任何調用之前
rand()
. - 最好使用調用的結果
time(0)
作為種子。這time()
函數返回自以來的秒數UTC 時間 1970 年 1 月 1 日 00:00(即當前的 unix 時間戳)。
因此,種子的價值隨時間而變化。所以每次我們運行程序時,都會生成一組新的隨機數。
示例 2:srand() 和 time()
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main() {
// set seed to time(0)
srand(time(0));
// generate random number
int random = rand();
// print seed and random number
cout << "Seed = " << time(0) << endl;
cout << "Random number = " << random;
return 0;
}
輸出
Seed = 1629892833 Random number = 5202
相關用法
- C++ std::max()用法及代碼示例
- C++ std::string::push_back()用法及代碼示例
- C++ std::less_equal用法及代碼示例
- C++ set rbegin()用法及代碼示例
- C++ string::length()用法及代碼示例
- C++ set upper_bound()用法及代碼示例
- C++ set crbegin用法及代碼示例
- C++ std::is_member_object_pointer模板用法及代碼示例
- C++ std::copy_n()用法及代碼示例
- C++ std::string::insert()用法及代碼示例
- C++ std::is_sorted_until用法及代碼示例
- C++ std::iota用法及代碼示例
- C++ set size用法及代碼示例
- C++ std::numeric_limits::digits用法及代碼示例
- C++ sscanf()用法及代碼示例
- C++ std::string::data()用法及代碼示例
- C++ smatch max_size()用法及代碼示例
- C++ std::is_permutation用法及代碼示例
- C++ strchr()用法及代碼示例
- C++ set emplace用法及代碼示例
注:本文由純淨天空篩選整理自 C++ srand()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。