寫(xiě)程序時(shí)候有時(shí)候需要產(chǎn)生一個(gè)隨機(jī)數(shù),c語(yǔ)言有內(nèi)建的隨機(jī)數(shù)產(chǎn)生函數(shù)rand();
雙湖ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!它包含在stdlib庫(kù)中
例如
#include
int a;
a=rand();
這時(shí),a變量?jī)?nèi)存的是0到32767(32位操作系統(tǒng))之間的一個(gè)隨機(jī)數(shù)。
但是雖然每次調(diào)用rand(),函數(shù)時(shí)值不一樣,他們是一個(gè)系列,可是下一次運(yùn)行程序時(shí)候,出來(lái)的隨機(jī)數(shù)還是這個(gè)序列。
這是因?yàn)閞and()函數(shù)要產(chǎn)生一個(gè)隨機(jī)數(shù)必須依靠一個(gè)種子數(shù),如果沒(méi)有約定,種子數(shù)就是1;
這樣每次程序運(yùn)行產(chǎn)生的第一個(gè)隨機(jī)數(shù)都一樣,第二個(gè)也一樣以后都一樣。
為了解決這個(gè)問(wèn)題,在調(diào)用rand()函數(shù)之前先調(diào)用一次srand(值)函數(shù);這樣隨著值的不同每次程序運(yùn)行產(chǎn)生的第n個(gè)值也就不同了。為了方便,大部分程序員都用時(shí)間來(lái)作為值。
例如:
srand(time(NYLL));
這樣種子數(shù)就是隨時(shí)間變化的數(shù),rand()函數(shù)隨機(jī)出來(lái)的數(shù)就不是固定的序列了。
這時(shí)產(chǎn)生的隨機(jī)數(shù)是0到32767之間的一個(gè)數(shù),我們?nèi)绻枰a(chǎn)生0到x之間的數(shù)可以取余操作例如產(chǎn)生0到10之間的數(shù),可以用:
a=rand()%11;
產(chǎn)生5到10之間的數(shù)
a=5+rand()%(11-5);
產(chǎn)生100到999之間的數(shù)
a=100+rand()%(1000-100);
產(chǎn)生x到y(tǒng)之間的數(shù):
a=x+rand()%(y+1-x);
這樣就可以產(chǎn)生隨機(jī)數(shù)了;
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧