C/C++ 中的 rand() 和 srand()


在本文中,我們將討論 C++ STL 中 rand() 和 srand() 函式的工作原理、語法和示例。

什麼是 rand()?

rand() 函式是 C++ STL 中的一個內建函式,它在 <cstdlib> 標頭檔案中定義。rand() 用於生成一系列隨機數。當我們希望在程式碼中生成一個隨機數時,可以使用此函式。

例如,我們在 C++ 中製作一個“飛行棋”遊戲,需要在 1 到 6 之間生成任意隨機數,那麼我們可以使用 rand() 生成一個隨機數。

隨機數是使用一種演算法生成的,該演算法在每次呼叫此函式時都會產生一系列不相關的數字。

例如,如果我們想要生成 1 到 6 之間的隨機數,則可以使用以下函式:

Num = rand() % 6 + 1;

語法

int rand();

引數

該函式不接受任何引數。

返回值

此函式返回一個介於 0 到 RAND_MAX 之間的整數值。

輸入

rand() % 100 +1;

輸出

57

示例

rand()

即時演示

#include <stdio.h>
#include <stdlib.h&g;
int main(void){
   printf("Randomly generated numbers are: ");
   for(int i = 0; i<5; i++)
      printf(" %d ", rand());
   return 0;
}

輸出

如果我們第一次執行此程式碼,輸出將為:

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915
1957747793

如果我們第 N 次執行此程式碼,輸出將為:

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915
1957747793

什麼是 srand()?

srand() 函式是 C++ STL 中的一個內建函式,它在 <cstdlib> 標頭檔案中定義。srand() 用於初始化隨機數生成器。此函式提供一個起點來生成偽隨機整數序列。該引數作為生成偽隨機數的種子傳遞。只要在 srand 中使用不同的種子值,就可以預期偽數生成器會生成不同的結果序列,與 rand() 相同。

語法

int srand(unsigned int seed);

引數

該函式接受以下引數:

  • seed - 這是一個整數,用作偽隨機數生成器的種子。

返回值

此函式返回一個偽生成的隨機數。

輸入

srand(time(0));
rand();

輸出

1804289383

示例

srand()

即時演示

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main(void){
   srand(time(0));
   printf("Randomly generated numbers are: ");
   for(int i = 0; i<5; i++)
      printf(" %d ", rand());
   return 0;
}

輸出

如果我們第一次執行此程式碼,輸出將為:

Randomly generated numbers are: 382366186 1045528146 1291469435 515349891
931606430

如果我們第二次執行此程式碼,輸出將為:

Randomly generated numbers are: 1410939666 214525217 875042802
1560673843 782892338

更新於: 2020年4月22日

10K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告