隨機函數(shù)就是產(chǎn)生數(shù)的函數(shù),橡純鏈?zhǔn)荅XCEL中很重要的褲殲函數(shù),梁孫C語言里也有rand(),srand()等隨機函數(shù)
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、海西ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的海西網(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)時間當(dāng)種子,對隨機函數(shù)進行初始化
for( i = 0; i 10;i++ )
{
k=rand()%100; //產(chǎn)生各個隨機數(shù)
printf( " k=%d/n", k );
}
}
詳述
rand() srand() 頭文件為#include
標(biāo)準(zhǔn)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)時間當(dāng)種子,對隨機函數(shù)進行初始化,每次的系統(tǒng)時間不同,所以種子也就不同,產(chǎn)生的隨機數(shù)序列也就不同。
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)真正意義上的“隨機”。通常可以利用系統(tǒng)時間來改變系統(tǒng)的種子值,即srand(time(NULL)),可以為或豎rand函數(shù)提供不同的種子值,進而產(chǎn)生不同的隨機數(shù)序列。
分享名稱:c語言中隨機函數(shù)是什么 c語言中的隨機數(shù)
分享地址:http://m.newbst.com/article42/ddpieec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、軟件開發(fā)、網(wǎng)站收錄、建站公司、微信公眾號、外貿(mào)建站
聲明:本網(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)