c語言中產(chǎn)生隨機(jī)數(shù)的相關(guān)函數(shù)主要包括srand和rand函數(shù),兩者配合生成隨機(jī)數(shù)據(jù),測試代碼如下,
為博白等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及博白網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、博白網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
#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的隨機(jī)數(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)生偽隨機(jī)數(shù)序列。rand函數(shù)在產(chǎn)生隨機(jī)數(shù)前,需要系統(tǒng)提供的生成偽隨機(jī)數(shù)序列的種子,rand根據(jù)這個種子的值產(chǎn)生一系列隨機(jī)數(shù)。如果系統(tǒng)提供的種子沒有變化,每次調(diào)用rand函數(shù)生成的偽隨機(jī)數(shù)序列都是一樣的。srand(unsigned seed)通過參數(shù)seed改變系統(tǒng)提供的種子值,從而可以使得每次調(diào)用rand函數(shù)生成的偽隨機(jī)數(shù)序列不同,從而實現(xiàn)真正意義上的“隨機(jī)”。通??梢岳孟到y(tǒng)時間來改變系統(tǒng)的種子值,即srand(time(NULL)),可以為rand函數(shù)提供不同的種子值,進(jìn)而產(chǎn)生不同的隨機(jī)數(shù)序列。
需要準(zhǔn)備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,輸入C語言代碼:
srand((unsigned)time(NULL));
for (int i = 0;i 100; i++) {
printf("%d ", rand());
}
3、編譯器運(yùn)行test.cpp文件,此時成功隨機(jī)生成了100個隨機(jī)數(shù)。
產(chǎn)生一定范圍隨機(jī)數(shù)的通用表示公式\x0d\x0a\x0d\x0a要取得[a,b)的隨機(jī)整數(shù),使用(rand() % (b-a))+ a;\x0d\x0a\x0d\x0a要取得[a,b]的隨機(jī)整數(shù),使用(rand() % (b-a+1))+ a;\x0d\x0a\x0d\x0a要取得(a,b]的隨機(jī)整數(shù),使用(rand() % (b-a))+ a + 1;\x0d\x0a\x0d\x0a通用公式:a + rand() % n;其中的a是起始值,n是整數(shù)的范圍。\x0d\x0a\x0d\x0a要取得a到b之間的隨機(jī)整數(shù),另一種表示:a + (int)b * rand() / (RAND_MAX + 1)。\x0d\x0a\x0d\x0a要取得0~1之間的浮點數(shù),可以使用rand() / double(RAND_MAX)。