c語言rand函數(shù) c語言rand函數(shù)怎么用

c語言中rand函數(shù)的使用方法

它的返回值就是求取隨機(jī)的值,所以如果沒有對數(shù)有要求,直接這樣定:

創(chuàng)新互聯(lián)公司專注于洪江管理區(qū)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供洪江管理區(qū)營銷型網(wǎng)站建設(shè),洪江管理區(qū)網(wǎng)站制作、洪江管理區(qū)網(wǎng)頁設(shè)計、洪江管理區(qū)網(wǎng)站官網(wǎng)定制、小程序設(shè)計服務(wù),打造洪江管理區(qū)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供洪江管理區(qū)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

printf("%d", rand());就能輸出一個隨機(jī)數(shù).但如果對數(shù)有要求,如小數(shù)或在一定值以內(nèi):

小數(shù):rand()+rand()/100.0 //100.0后面的.0必須寫,100是說明求兩位小數(shù),你可以自己加大.

一定范圍:rand()%10+0 //10是頂和底的差,0是底,就是說求10到20之間的數(shù)就是:rand()%10+10

但是調(diào)用它必須先調(diào)用srand()來生成隨機(jī)種子,如果你沒調(diào)用它,系統(tǒng)會自動調(diào)用.但是srand是有個參數(shù)的,種子就是根據(jù)這個參數(shù)來定的,所以這個參數(shù)決定著生成的隨機(jī)數(shù).如果你在代碼里寫死了它:srand(10);那這樣rand生成的隨機(jī)數(shù)就也被定格在了一定量,所以不要這樣用.要這樣寫:

srand(time(NULL));time的返回值是當(dāng)前系統(tǒng)時間.因為時間不同,所取的數(shù)值也就不同.這樣隨機(jī)數(shù)就真正的隨機(jī)了.

time在中聲明

rand,srand在中聲明.

C語言中的rand()函數(shù)怎么用

rand()

rand()函數(shù)用來產(chǎn)生隨機(jī)數(shù),但是,rand()的內(nèi)部實現(xiàn)是用線性同余法實現(xiàn)的,是偽隨機(jī)數(shù),由于周期較長,因此在一定范圍內(nèi)可以看成是隨機(jī)的。

rand()會返回一個范圍在0到RAND_MAX(至少是32767)之間的偽隨機(jī)數(shù)(整數(shù))。

在調(diào)用rand()函數(shù)之前,可以使用srand()函數(shù)設(shè)置隨機(jī)數(shù)種子,如果沒有設(shè)置隨機(jī)數(shù)種子,rand()函數(shù)在調(diào)用時,自動設(shè)計隨機(jī)數(shù)種子為1。隨機(jī)種子相同,每次產(chǎn)生的隨機(jī)數(shù)也會相同。

rand()函數(shù)需要的頭文件是:stdlib.h

rand()函數(shù)原型:int rand(void);

使用rand()函數(shù)產(chǎn)生1-100以內(nèi)的隨機(jī)整數(shù):int number1 = rand() % 100+1。

srand()

srand()函數(shù)需要的頭文件仍然是:stdlib.h

srand()函數(shù)原型:void srand (usigned int seed);

srand()用來設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時的隨機(jī)數(shù)種子。參數(shù)seed是整數(shù),通??梢岳胻ime(0)或getpid(0)的返回值作為seed。

使用rand()和srand()產(chǎn)生1-100以內(nèi)的隨機(jī)整數(shù):

srand(time(0));

int number1 = rand() % 100+1。

c語言rand

rand()%90+10:隨機(jī)產(chǎn)生一個兩位數(shù)[10,100).

rand()是產(chǎn)生隨機(jī)數(shù)的函數(shù)(rand為random的縮寫),它產(chǎn)生一個[0,32767)之間一個隨機(jī)數(shù).

rand()常與srand()一起使用.

srand()是seed_random的縮寫,seed意思是隨機(jī)數(shù)種子.如果程序中未使用srand()函數(shù).C系統(tǒng)默認(rèn)為srand(0).如果有以下語句:

for(i=0;i5;i++)

for(j=0;j4;j++)

a[i][j]=rand()%90+10;

則從a[0][0]到a[5][4]的值都相同.

因此要在for(i=0;i5;i++)之前加上如下語句:

srand ( (unsigned) time (NULL) );

srand()的形參要求是unsigned型,而time()的返回值是長整型,故需強(qiáng)制轉(zhuǎn)換.而time(NULL)返回從1970年0時0分0秒到srand()語句執(zhí)行時系統(tǒng)時鐘所經(jīng)歷的秒數(shù)(這個數(shù)字很大達(dá)千萬,故為長整型).

如果你需要20個60到100的隨機(jī)數(shù).則可用如下語句實現(xiàn):

#inlude stdio.h

main()

{int a[20},i;

srand ( (unsigned) time (NULL) );

for(i=0;i20;i++)

{a[i]=rand()%40+60;/*100-60=40*/

printf("%4d",a[i]);

}

}

其實從概律論來分析,用這兩個函數(shù)產(chǎn)生的隨機(jī)數(shù)并不隨機(jī),它們并不符合正態(tài)分?jǐn)?shù).

隨機(jī)函數(shù)rand怎么用c語言

一、首先包含必要的頭文件

#includestdio.h

這個包含用于輸入輸出的函數(shù)。

#includestdlib.h

這個包含初始化隨機(jī)數(shù)種子、產(chǎn)生隨機(jī)數(shù)的函數(shù)。

#includetime.h

這個包含與時間有關(guān)的函數(shù),初始化隨機(jī)數(shù)種子時可以用到。

二、使用如下公式產(chǎn)生在區(qū)間[min,max]之間的隨機(jī)數(shù)

int r=rand()%(max-min+1)+min;

三、一個例子,產(chǎn)生10個[1,100]的隨機(jī)整數(shù)

#include stdio.h

#include stdlib.h

#include time.h

int main()

{

const int min=1,max=100;

int i,r;

//用當(dāng)前時間初始化隨機(jī)數(shù)種子

srand(time(NULL));

printf("隨機(jī)產(chǎn)生的10個1-100的整數(shù)是:");

for(i=0;i10;i++)

{

r=rand()%(max-min+1)+min;

printf("%d,",r);

}

return 0;

}

四、運行結(jié)果的截圖

截圖1

截圖2

C中,rand()是什么意思,有什么作用

rand()是C語言中產(chǎn)生隨機(jī)數(shù)的一個函數(shù),但是需要注意的是,產(chǎn)生的是偽隨機(jī)數(shù)。

rand()用法舉例:

產(chǎn)生1到100之間的隨機(jī)數(shù)

#includestdio.h

int

main(){

srand((unsigned)time(NULL));//產(chǎn)生隨機(jī)數(shù)種子

int

rand_num=(rand()%100)+1;//產(chǎn)生1到100直接的隨機(jī)數(shù)

printf("rand_num=%d\n",rand_num);

return

0;

}

代碼截圖:

擴(kuò)展資料:

所謂的“偽隨機(jī)數(shù)”指的并不是假的隨機(jī)數(shù)。其實絕對的隨機(jī)數(shù)只是一種理想狀態(tài)的隨機(jī)數(shù),計算機(jī)只能生成相對的隨機(jī)數(shù)即偽隨機(jī)數(shù)。

系統(tǒng)在調(diào)用rand()之前都會自動調(diào)用srand(),如果用戶在rand()之前曾調(diào)用過srand()給參數(shù)seed指定了一個值,那么

rand()就會將seed的值作為產(chǎn)生偽隨機(jī)數(shù)的初始值;

而如果用戶在rand()前沒有調(diào)用過srand(),那么系統(tǒng)默認(rèn)將1作為偽隨機(jī)數(shù)的初始

值。如果給了一個定值,那么每次rand()產(chǎn)生的隨機(jī)數(shù)序列都是一樣的。

所以為了避免上述情況的發(fā)生我們通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))來

產(chǎn)生種子。

如果仍然覺得時間間隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某個合適的整數(shù)。

例如,srand((unsigned)time(NULL)*10)。

參考資料:百度百科-rand函數(shù)

c語言之rand函數(shù)的使用

c語言中的rand隨機(jī)數(shù)函數(shù),是按指定順序來產(chǎn)生的,在生成隨機(jī)數(shù)之前,在stdlib.h頭文件中,會初始化函數(shù)srand,根據(jù)隨機(jī)種子seed,來獲取隨機(jī)數(shù),如果seed不變,每次運行得到的隨機(jī)數(shù)會是一樣的,因此,rand函數(shù)也被大家叫做偽隨機(jī)數(shù)。下面就來介紹下rand函數(shù)的使用

打開代碼編譯器,輸入如下所示的代碼片段

運行該代碼片段,得到10個隨機(jī)數(shù),但是我們發(fā)現(xiàn),不論運行幾次,生成的隨機(jī)數(shù)都是這10個,也就是說,在種子seed不變的情況下,生成的隨機(jī)數(shù)是偽隨機(jī)數(shù)

我們引入頭文件time.h,取時間戳作為seed的取值來源,改代碼片段如下,將srand(1)改成srand(time(NULL))

運行代碼,得到10個隨機(jī)數(shù)如下,定義非常量的srand參數(shù),可以避免偽隨機(jī)數(shù)的產(chǎn)生

當(dāng)前標(biāo)題:c語言rand函數(shù) c語言rand函數(shù)怎么用
本文鏈接:http://muchs.cn/article22/docodcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、移動網(wǎng)站建設(shè)、ChatGPT、商城網(wǎng)站、App設(shè)計、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)