新聞中心
什么是c語(yǔ)言中rand函數(shù)?
函數(shù)rand()是隨機(jī)數(shù)生成器
在全南等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,外貿(mào)網(wǎng)站建設(shè),全南網(wǎng)站建設(shè)費(fèi)用合理。
有兩個(gè)函數(shù)用于產(chǎn)生隨機(jī)數(shù):srand()和rand()。
函數(shù)一:int
rand(void);從srand
(seed)中指定的seed開(kāi)始,返回一個(gè)[0,
RAND_MAX(0x7fff)]間的隨機(jī)整數(shù)。
函數(shù)二:void
srand(unsigned
seed);參數(shù)seed是rand()的種子,用來(lái)初始化rand()的起始值。
c語(yǔ)言 n=rand()%5是什么意思
rand()函數(shù)會(huì)產(chǎn)生范圍為0至32767的隨機(jī)數(shù),% 讓它與5求余,變成0至4的隨機(jī)數(shù),不過(guò)每次啟動(dòng)程序產(chǎn)生的隨機(jī)數(shù)都相等,在用srand(unsigned int)輸入種子數(shù)后產(chǎn)生的才不一樣,一般都用的 srand((unsigned int)time(NULL)) 產(chǎn)生種子。(記得要包含?time.h?庫(kù)文件)
擴(kuò)展資料:
當(dāng)提供的種子相同時(shí),隨機(jī)數(shù)序列也是相同的。而且當(dāng)種子為1時(shí),與不使用srand()函數(shù)時(shí)一樣的,也就是說(shuō)rand()函數(shù)默認(rèn)情況下初始化種子值為1;
在stdlib.h?中這兩個(gè)函數(shù)的原型是:
int rand();
void srand (unsigned int);
srand(time(0)); i=rand();
或者srand(time(NULL));
這樣就是一個(gè)偽隨機(jī)數(shù)。
rand()產(chǎn)生偽隨機(jī)數(shù),srand函數(shù)提供種子,種子不同產(chǎn)生的隨機(jī)數(shù)序列也不同,所以通常先調(diào)用srand函數(shù) time()返回的是系統(tǒng)的時(shí)間(從1970.1.1午夜算起),單位:秒,種子不同當(dāng)然產(chǎn)生的隨機(jī)數(shù)相同幾率就很小了。
參考鏈接:
rand()-百度百科
C中,rand()是什么意思,有什么作用
rand()是C語(yǔ)言中產(chǎn)生隨機(jī)數(shù)的一個(gè)函數(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ù)。其實(shí)絕對(duì)的隨機(jī)數(shù)只是一種理想狀態(tài)的隨機(jī)數(shù),計(jì)算機(jī)只能生成相對(duì)的隨機(jī)數(shù)即偽隨機(jī)數(shù)。
系統(tǒng)在調(diào)用rand()之前都會(huì)自動(dòng)調(diào)用srand(),如果用戶在rand()之前曾調(diào)用過(guò)srand()給參數(shù)seed指定了一個(gè)值,那么
rand()就會(huì)將seed的值作為產(chǎn)生偽隨機(jī)數(shù)的初始值;
而如果用戶在rand()前沒(méi)有調(diào)用過(guò)srand(),那么系統(tǒng)默認(rèn)將1作為偽隨機(jī)數(shù)的初始
值。如果給了一個(gè)定值,那么每次rand()產(chǎn)生的隨機(jī)數(shù)序列都是一樣的。
所以為了避免上述情況的發(fā)生我們通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))來(lái)
產(chǎn)生種子。
如果仍然覺(jué)得時(shí)間間隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某個(gè)合適的整數(shù)。
例如,srand((unsigned)time(NULL)*10)。
參考資料:百度百科-rand函數(shù)
c語(yǔ)言rand
rand()%90+10:隨機(jī)產(chǎn)生一個(gè)兩位數(shù)[10,100).
rand()是產(chǎn)生隨機(jī)數(shù)的函數(shù)(rand為random的縮寫(xiě)),它產(chǎn)生一個(gè)[0,32767)之間一個(gè)隨機(jī)數(shù).
rand()常與srand()一起使用.
srand()是seed_random的縮寫(xiě),seed意思是隨機(jī)數(shù)種子.如果程序中未使用srand()函數(shù).C系統(tǒng)默認(rèn)為srand(0).如果有以下語(yǔ)句:
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++)之前加上如下語(yǔ)句:
srand ( (unsigned) time (NULL) );
srand()的形參要求是unsigned型,而time()的返回值是長(zhǎng)整型,故需強(qiáng)制轉(zhuǎn)換.而time(NULL)返回從1970年0時(shí)0分0秒到srand()語(yǔ)句執(zhí)行時(shí)系統(tǒng)時(shí)鐘所經(jīng)歷的秒數(shù)(這個(gè)數(shù)字很大達(dá)千萬(wàn),故為長(zhǎng)整型).
如果你需要20個(gè)60到100的隨機(jī)數(shù).則可用如下語(yǔ)句實(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í)從概律論來(lái)分析,用這兩個(gè)函數(shù)產(chǎn)生的隨機(jī)數(shù)并不隨機(jī),它們并不符合正態(tài)分?jǐn)?shù).
c語(yǔ)言之rand函數(shù)的使用
c語(yǔ)言中的rand隨機(jī)數(shù)函數(shù),是按指定順序來(lái)產(chǎn)生的,在生成隨機(jī)數(shù)之前,在stdlib.h頭文件中,會(huì)初始化函數(shù)srand,根據(jù)隨機(jī)種子seed,來(lái)獲取隨機(jī)數(shù),如果seed不變,每次運(yùn)行得到的隨機(jī)數(shù)會(huì)是一樣的,因此,rand函數(shù)也被大家叫做偽隨機(jī)數(shù)。下面就來(lái)介紹下rand函數(shù)的使用
打開(kāi)代碼編譯器,輸入如下所示的代碼片段
運(yùn)行該代碼片段,得到10個(gè)隨機(jī)數(shù),但是我們發(fā)現(xiàn),不論運(yùn)行幾次,生成的隨機(jī)數(shù)都是這10個(gè),也就是說(shuō),在種子seed不變的情況下,生成的隨機(jī)數(shù)是偽隨機(jī)數(shù)
我們引入頭文件time.h,取時(shí)間戳作為seed的取值來(lái)源,改代碼片段如下,將srand(1)改成srand(time(NULL))
運(yùn)行代碼,得到10個(gè)隨機(jī)數(shù)如下,定義非常量的srand參數(shù),可以避免偽隨機(jī)數(shù)的產(chǎn)生
C語(yǔ)言這個(gè)rand是啥意思?
rand()函數(shù)作用:用來(lái)產(chǎn)生隨機(jī)數(shù),但是,rand()的內(nèi)部實(shí)現(xiàn)是用線性同余法實(shí)現(xiàn)的,是偽隨機(jī)數(shù),由于周期較長(zhǎng),因此在一定范圍內(nèi)可以看成是隨機(jī)的。
rand()函數(shù)返回:返回一個(gè)范圍在0到RAND_MAX(32767)之間的偽隨機(jī)數(shù)(整數(shù))。
rand()函數(shù)頭文件:stdlib.h。
rand()函數(shù)原型:int rand(void)。
在調(diào)用rand()函數(shù)之前,可以使用srand()函數(shù)設(shè)置隨機(jī)數(shù)種子,如果沒(méi)有設(shè)置隨機(jī)數(shù)種子,rand()函數(shù)在調(diào)用時(shí),自動(dòng)設(shè)計(jì)隨機(jī)數(shù)種子為1。隨機(jī)種子相同,每次產(chǎn)生的隨機(jī)數(shù)也會(huì)相同
網(wǎng)頁(yè)題目:c語(yǔ)言rand函數(shù)的意思 C語(yǔ)言rand函數(shù)
文章來(lái)源:http://www.dlmjj.cn/article/dodoids.html