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
廣告