當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ srand()用法及代碼示例


在本教程中,我們將借助示例了解 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() 參數seedrand() 函數用作種子。

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() 標準實踐

  1. 偽隨機數生成器不應該在每次我們生成一組新數字時播種,即它應該播種隻有一次在程序開始時,在任何調用之前rand().
  2. 最好使用調用的結果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++ srand()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。