1、為了使rand的結(jié)果更“真”一些,也就是令其返回值更具有隨機(jī)性(不確定性),C語言在stdlib.h中還提供了srand函數(shù),通過該函數(shù)可以設(shè)置一個(gè)隨機(jī)數(shù)種子,一般用當(dāng)前時(shí)間的毫秒數(shù)來做參數(shù)。

十載的荊州網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整荊州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“荊州網(wǎng)站設(shè)計(jì)”,“荊州網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
2、首先,打開C語言編譯器,新建一個(gè)初始.cpp文件,例如:test.cpp。
3、1 在stdlib.h中,同時(shí)包含了srand函數(shù),和rand函數(shù)的聲明。形式為 void srand(int value);int rand(void);2 如果沒有用srand,在一次程序調(diào)用rand多次時(shí),每次得到的值是隨機(jī)的。
4、rand()產(chǎn)生一個(gè)0~32767之間的偽隨機(jī)數(shù)。而srand(unsigned t)是為rand()產(chǎn)生偽隨機(jī)數(shù)下一個(gè)“種子”。
5、先用srand函數(shù)設(shè)置一個(gè)種子,一般為當(dāng)前時(shí)間,然后使用rand函數(shù)產(chǎn)生隨機(jī)數(shù),如產(chǎn)生a~b的隨機(jī)數(shù)使用表達(dá)式rand()%(b-a+1)+a。注意:srand函數(shù)在頭文件#include stdlib.h中。
6、srand()函數(shù)原型:void srand (usigned int seed);srand()用來設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時(shí)的隨機(jī)數(shù)種子。參數(shù)seed是整數(shù),通常可以利用time(0)或getpid(0)的返回值作為seed。
函數(shù)定義:void srand(unsigned int seed)函數(shù)功能:設(shè)置隨機(jī)數(shù)種子 函數(shù)說明:通常可以用getpid()(獲取當(dāng)前進(jìn)程的進(jìn)程識別碼)或者time(NULL)(獲取當(dāng)前系統(tǒng)的時(shí)間信息)來充當(dāng)種子,保持每次運(yùn)行時(shí)種子是不一樣的。
函數(shù)一:int rand(void);返回一個(gè)[0,RAND_MAX]間的隨機(jī)整數(shù)。函數(shù)二:void srand(unsigned seed);參數(shù)seed是rand()的種子,用來初始化rand()的起始值。但是,要注意的是所謂的“偽隨機(jī)數(shù)”指的并不是假的隨機(jī)數(shù)。
定義函數(shù):void srand (unsigned int seed);函數(shù)說明:srand()用來設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時(shí)的隨機(jī)數(shù)種子。參數(shù)seed必須是個(gè)整數(shù),通常可以利用geypid()或time(0)的返回值來當(dāng)做seed。
RAND_MAX 是一個(gè)常量,它的默認(rèn)值在不同的實(shí)現(xiàn)中會有所不同,但是值至少是 32767。C 庫函數(shù) void srand(unsigned int seed) 播種由函數(shù) rand 使用的隨機(jī)數(shù)發(fā)生器。
通過time(NULL)可以獲取到當(dāng)前時(shí)間的毫秒值(該函數(shù)位于time.h)中。使用rand的流程可以總結(jié)為:1 調(diào)用srand(time(NULL))設(shè)置隨機(jī)數(shù)種子。2 調(diào)用rand函數(shù)獲取一個(gè)或一系列隨機(jī)數(shù)。
代碼里的srand(time(0))的意思是:用當(dāng)前時(shí)間來設(shè)定rand函數(shù)所用的隨機(jī)數(shù)產(chǎn)生演算法的種子值。其中,time(time_t *t); 是C標(biāo)準(zhǔn)庫函數(shù),如果t是空指針,直接返回當(dāng)前時(shí)間。
srand(time(0)) 就是給這個(gè)算法一個(gè)啟動種子,也就是算法的隨機(jī)種子數(shù),用1970.1至今的秒數(shù),初始化隨機(jī)數(shù)種子。Srand是種下隨機(jī)種子數(shù),你每回種下的種子不一樣,用Rand得到的隨機(jī)數(shù)就不一樣。
srand函數(shù)就用來初始化這個(gè)發(fā)生器,參數(shù)time(0)能夠生成從1970年1月1日到當(dāng)前機(jī)器時(shí)間的秒數(shù),這個(gè)數(shù)在你每次執(zhí)行程序的時(shí)候都會不斷增長、變化,所以用它當(dāng)做種子來初始化發(fā)生器,就會生成不同的隨機(jī)數(shù)了。
srand(time(0))是指產(chǎn)生不同的隨機(jī)種子。用法:它需要提供一個(gè)種子,這個(gè)種子會對應(yīng)一個(gè)隨機(jī)數(shù),如果使用相同的種子后面的rand()函數(shù)會出現(xiàn)一樣的隨機(jī)數(shù)。如: srand(1); 直接使用1來初始化種子。
srand(time(0))放到循環(huán)前面就可以了。
)就可以了,省事,簡單,例子如下 如果我們想得到一個(gè) 0-60的隨機(jī)數(shù)那么可以寫成 int i;i=rand()%60;就可以了。當(dāng)然最好有個(gè)統(tǒng)一的標(biāo)注如下:int i;srand((unsigned)time( NULL ));i=rand()%60;這樣就OK了。
名稱欄目:c語言中srand函數(shù) c語言srand函數(shù)的簡單用法
轉(zhuǎn)載源于:http://chinadenli.net/article10/dcohdgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站制作、做網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站排名、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)