很多時候,我們需要程序生成隨機數(shù),本篇文章將詳解這三個函數(shù),然后使用他們生成隨機數(shù)。
創(chuàng)新互聯(lián)公司是一家業(yè)務范圍包括IDC托管業(yè)務,雅安服務器托管、主機租用、主機托管,四川、重慶、廣東電信服務器租用,德陽服務器托管,成都網(wǎng)通服務器托管,成都服務器租用,業(yè)務范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務公司。rand頭文件:stdlib.h
rand功能:生成一個隨機數(shù)。
rand函數(shù)聲明:
int rand (void);
rand函數(shù)無需傳入?yún)?shù),返回值是 0-RAND_MAX(32767) 之間的一個數(shù)。每個數(shù)字被選中的概率是相同的。
rand使用實例:
#include#includeint main()
{printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
return 0;
}
注意:
rand函數(shù)是偽隨機,默認隨機數(shù)種子是1。
如果隨機數(shù)種子是相同的,每次程序運行算法迭代產(chǎn)生的結(jié)果就是相同的
下圖是隨機數(shù)種子為1時的運行結(jié)果,即使再次運行結(jié)果也不變:
要想讓每次程序隨機的不同,這時就需要srand函數(shù)了。
srand頭文件:stdlib.h
srand功能:設置隨機數(shù)種子。
srand函數(shù)聲明:
void srand(unsigned int seed);
seed是一個無符號類型的數(shù),不同的seed可以設置不同的隨機數(shù)種子。
srand使用實例:
#include#includeint main()
{srand(1);
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("\n");
srand(2);
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
return 0;
}
注意:相同的seed程序每次運行的結(jié)果依然一樣。
因此我們想讓每次程序運行給srand傳遞個不同的參數(shù),這時就需要time函數(shù)了。
time頭文件:time.h
time功能:計算當前時間的時間戳。
Unix 時間戳:從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù),不考慮閏秒。
Unix時間戳在線工具
因此時間戳是隨時間始終變化的。
time函數(shù)聲明:
time_t time (time_t* timer);
time_t是對long long int的重命名。
timer是long long int型指針,傳入NULL參數(shù)就可以計算標準Unix時間戳。
time函數(shù)返回值就是long long int 型時間戳的數(shù)值。
time使用實例:
#include#include#includeint main()
{srand((unsigned int)time(NULL));
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
return 0;
}
注意:
需要強制類型轉(zhuǎn)換成int型再給srand傳參,否則就是語法錯誤。
隨機數(shù)種子設置一次就行了,不需要重復設置。
生成一個1-100的隨機數(shù)函數(shù)代碼演示:
#include#include#includeint main()
{srand((unsigned int)time(NULL));
int randomNum=rand()%100+1;
printf("%d\n",randomNum);
randomNum=rand()%100+1;
printf("%d\n",randomNum);
return 0;
}
以上你就掌握了如何生成一個隨機數(shù)了。
碼字不容易,歡迎關注、點贊、收藏、評論、轉(zhuǎn)發(fā)。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧