用庫函數(shù)也可以,有簡便的方法,就是捕獲定時器中的值!思路如下,程序一開始就打開定時器(不開中斷),讓定時器在哪里跑。當你要用隨機數(shù)的時候捕獲出定時器中的值,然后經(jīng)過運算可以得出0-9的隨機數(shù)!
公司主營業(yè)務:成都網(wǎng)站設計、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出阿魯科爾沁免費做網(wǎng)站回饋大家。
隨機函數(shù)就是產(chǎn)生數(shù)的函數(shù),c語言里有rand(),srand()等函數(shù)。
用法
#include
#include
#include
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系統(tǒng)時間當種子,對隨機函數(shù)進行初始化
for( i = 0; i 10;i++ )
{
k=rand()%100; //產(chǎn)生各個隨機數(shù)
printf( " k=%d/n", k );
}
}
詳述
rand() srand() 頭文件為#include
標準C庫中函數(shù)rand()可以生成0~RAND_MAX之間的一個隨機數(shù),其中RAND_MAX 是stdlib.h 中定義的一個整數(shù),它與系統(tǒng)有關(guān)。
rand()函數(shù)沒有輸入?yún)?shù),直接通過表達式rand()來引用,rand()%n是產(chǎn)生的隨機數(shù)對n取余,起到了取0到n-1之間隨機數(shù)的作用;
例如可以用下面的語句來打印兩個隨機數(shù): printf("Random numbers are: %i %i/n",rand(),rand());
因為rand()函數(shù)是按指定的順序來產(chǎn)生整數(shù),而未指定運行的種子,所以rand()每次使用的都是同一個種子來產(chǎn)生隨機數(shù)序列,因此每次執(zhí)行上面的語句都打印相同的兩個值,所以說C語言的隨機并不是正真意義上的隨機。
為了時程序在每次執(zhí)行時都能生成一個新序列的隨機值,我們通常通過為隨機數(shù)生成器提供一粒新的隨機種子。函數(shù) srand()(來自stdlib.h)可以為隨機數(shù)生成器播散種子。只要種子不同rand()函數(shù)就會產(chǎn)生不同的隨機數(shù)序列。srand()稱為隨機數(shù)生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系統(tǒng)時間當種子,對隨機函數(shù)進行初始化,每次的系統(tǒng)時間不同,所以種子也就不同,產(chǎn)生的隨機數(shù)序列也就不同。
c語言隨機數(shù)函數(shù)是 rand()
若要輸出1~10之間的隨機數(shù),
可用rand()%10+1。
#include stdlib.h
srand(dat); //初始化隨機種子,使用該函數(shù)需要上面的頭文件。如果不要這個,每次開機,對應的隨機數(shù)都是相同的. dat 也是需要是個隨機數(shù),一般可以用掉電存儲的方式來讀取。
dat = rand() ;
rand()函數(shù) 返回值是產(chǎn)生一個隨機數(shù),這個返回值雖然是隨機數(shù),但是可能會發(fā)現(xiàn),每回產(chǎn)生的都一樣,比如:
#include iostream
using namespace std;
void main()
{
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序后發(fā)現(xiàn),產(chǎn)生的隨機數(shù),雖然每次運行程序時是隨機數(shù),但是,后來再運行程序,發(fā)現(xiàn)與上幾次結(jié)果一樣。
這是因為,隨機數(shù)的起始值都一樣。
為了產(chǎn)生真正的隨機數(shù),就應該設置隨機數(shù)的起始值,這個要利用srand()函數(shù)。
將上面程序改為:
#include iostream
using namespace std;
void main()
{
cout"請輸入隨機數(shù)的起始值"endl;
int num;
cinnum;
srand(num);
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序 就會發(fā)現(xiàn) 輸入的起始值不同,產(chǎn)生的隨機數(shù)就不同。
當然 也可以產(chǎn)生時間隨機數(shù),這個要用到c語言time.h中的程序,這個可以供你自己思考,自己解決問題,樂趣更多呢~呵呵~
啰嗦這么多 希望對您有所幫助!
c語言中產(chǎn)生隨機數(shù)的相關(guān)函數(shù)主要包括srand和rand函數(shù),兩者配合生成隨機數(shù)據(jù),測試代碼如下,
#includestdio.h
#include stdlib.h
#include time.h
void main()
{
int i=0,j=0;
int p[5][5]={0};
srand(time(NULL));
for(i=0;i5;i++)
for(j=0;j5;j++)
p[i][j]=rand()%100+1;//產(chǎn)生1-100的隨機數(shù)存入數(shù)組p中
printf("二維數(shù)組p為:\n");
for(i=0;i5;i++)
{
for(j=0;j5;j++)
printf("%d\t",p[i][j]);
printf("\n");
}
}
一般srand和rand配合使用產(chǎn)生偽隨機數(shù)序列。rand函數(shù)在產(chǎn)生隨機數(shù)前,需要系統(tǒng)提供的生成偽隨機數(shù)序列的種子,rand根據(jù)這個種子的值產(chǎn)生一系列隨機數(shù)。如果系統(tǒng)提供的種子沒有變化,每次調(diào)用rand函數(shù)生成的偽隨機數(shù)序列都是一樣的。srand(unsigned seed)通過參數(shù)seed改變系統(tǒng)提供的種子值,從而可以使得每次調(diào)用rand函數(shù)生成的偽隨機數(shù)序列不同,從而實現(xiàn)真正意義上的“隨機”。通??梢岳孟到y(tǒng)時間來改變系統(tǒng)的種子值,即srand(time(NULL)),可以為rand函數(shù)提供不同的種子值,進而產(chǎn)生不同的隨機數(shù)序列。
當前文章:單片機c語言的隨機函數(shù) 隨機函數(shù)代碼c語言
網(wǎng)站URL:http://chinadenli.net/article12/dodsjgc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、定制開發(fā)、外貿(mào)網(wǎng)站建設、虛擬主機、微信小程序、電子商務
聲明:本網(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)