c語(yǔ)言randn函數(shù) c語(yǔ)言rand函數(shù)使用方法

c語(yǔ)言中rand()函數(shù)怎么用?

rand函數(shù)功能為獲取一個(gè)偽隨機(jī)數(shù)(偽隨機(jī)數(shù)的概念下面會(huì)有介紹)。

新干網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

一、函數(shù)名:

rand();

二、聲明:

int rand();

三、所在頭文件:

stdlib.h

四、功能:

返回一個(gè)偽隨機(jī)數(shù)。之所以說(shuō)是偽隨機(jī)數(shù),是因?yàn)樵跊](méi)有其它操作下,每次執(zhí)行同一個(gè)程序,調(diào)用rand得到的隨機(jī)數(shù)序列是固定的(不是真正的“隨機(jī)”)。

五、為了使rand的結(jié)果更“真”一些,也就是令其返回值更具有隨機(jī)性(不確定性),C語(yǔ)言在stdlib.h中還提供了srand函數(shù),通過(guò)該函數(shù)可以設(shè)置一個(gè)隨機(jī)數(shù)種子,一般用當(dāng)前時(shí)間的毫秒數(shù)來(lái)做參數(shù)。通過(guò)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只需要在所有rand調(diào)用前,被調(diào)用一次即可,沒(méi)必要調(diào)用多次。

七、以下是隨機(jī)獲取10個(gè)整型值并輸出的例子,輔助理解。

#include?stdio.h

#include?stdlib.h

#include?time.h

int?main()

{

int?i;

srand(time(NULL));//設(shè)置隨機(jī)數(shù)種子。

for(i?=?0;?i??10;?i?++)//運(yùn)行10次。

printf("%d\n",?rand());//每次獲取一個(gè)隨機(jī)數(shù)并輸出。

return?0;

}

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

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()會(huì)返回一個(gè)范圍在0到RAND_MAX(至少是32767)之間的偽隨機(jī)數(shù)(整數(shù))。

在調(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ì)相同。

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()用來(lái)設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時(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()是表示產(chǎn)生隨機(jī)數(shù)的一種函數(shù),多應(yīng)用于循環(huán)語(yǔ)句當(dāng)中進(jìn)行判斷。

比如說(shuō)n=rand();

switch(n)

{case1.......

case2......}

這些都是都可能被執(zhí)行的,因?yàn)閿?shù)字是隨機(jī)的。

擴(kuò)展資料:

注意

rand()函數(shù)可以用來(lái)產(chǎn)生隨機(jī)數(shù),但是這不是真真意義上的隨機(jī)數(shù),是一個(gè)偽隨機(jī)數(shù),是根據(jù)一個(gè)數(shù),我們可以稱它為種了,為基準(zhǔn)以某個(gè)遞推公式推算出來(lái)的一系數(shù),

當(dāng)這系列數(shù)很大的時(shí)候,就符合正態(tài)公布,從而相當(dāng)于產(chǎn)生了隨機(jī)數(shù),但這不是真正的隨機(jī)數(shù),當(dāng)計(jì)算機(jī)正常開(kāi)機(jī)后,這個(gè)種子的值是定了的,除非你破壞了系統(tǒng),為了改變這個(gè)種子的值,C提供了 srand()函數(shù),它的原形是void srand( int a) ,

功能是初始化隨機(jī)產(chǎn)生器既rand()函數(shù)的初始值,即使把種子的值改成a; 從這你可以看到通過(guò)sand()函數(shù),可以產(chǎn)生可以預(yù)見(jiàn)的隨機(jī)序列。

參考資料來(lái)源:rand函數(shù)-百度百科

網(wǎng)站欄目:c語(yǔ)言randn函數(shù) c語(yǔ)言rand函數(shù)使用方法
瀏覽地址:http://bm7419.com/article12/dohpsdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、Google云服務(wù)器、企業(yè)建站移動(dòng)網(wǎng)站建設(shè)面包屑導(dǎo)航

廣告

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

成都定制網(wǎng)站建設(shè)