c語(yǔ)言rand函數(shù)的用法
時(shí)間:
長(zhǎng)思709由 分享
c語(yǔ)言rand函數(shù)的用法
在C語(yǔ)言中,rand()函數(shù)可以用來(lái)產(chǎn)生隨機(jī)數(shù),但是這不是真真意義上的隨機(jī)數(shù),是一個(gè)偽隨機(jī)數(shù),是根據(jù)一個(gè)數(shù),我們可以稱它為種子,為基準(zhǔn)以某個(gè)遞推公式推算出來(lái)的一系數(shù),下面我們來(lái)看看c語(yǔ)言rand函數(shù)的用法。
rand(產(chǎn)生隨機(jī)數(shù))
相關(guān)函數(shù)
srand
表頭文件
#include<stdlib.h>
定義函數(shù)
int rand(void)
函數(shù)說(shuō)明
rand()會(huì)返回一隨機(jī)數(shù)值,范圍在0至RAND_MAX 間。在調(diào)用此函數(shù)產(chǎn)生隨機(jī)數(shù)前,必須先利用srand()設(shè)好隨機(jī)數(shù)種子,如果未設(shè)隨機(jī)數(shù)種子,rand()在調(diào)用時(shí)會(huì)自動(dòng)設(shè)隨機(jī)數(shù)種子為1。關(guān)于隨機(jī)數(shù)種子請(qǐng)參考srand()。
返回值
返回0至RAND_MAX之間的隨機(jī)數(shù)值,RAND_MAX定義在stdlib.h,其值為2147483647。
范例
/* 產(chǎn)生介于1 到10 間的隨機(jī)數(shù)值,此范例未設(shè)隨機(jī)數(shù)種子,完整的隨機(jī)數(shù)產(chǎn)生請(qǐng)參考
srand()*/
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
執(zhí)行
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6
srand(設(shè)置隨機(jī)數(shù)種子)
相關(guān)函數(shù)
rand
表頭文件
#include<stdlib.h>
定義函數(shù)
void srand (unsigned int seed);
函數(shù)說(shuō)明
srand()用來(lái)設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時(shí)的隨機(jī)數(shù)種子。參數(shù)seed必須是個(gè)整數(shù),通??梢岳胓eypid()或time(0)的返回值來(lái)當(dāng)做seed。如果每次seed都設(shè)相同值,rand()所產(chǎn)生的隨機(jī)數(shù)值每次就會(huì)一樣。
返回值
范例
/* 產(chǎn)生介于1 到10 間的隨機(jī)數(shù)值,此范例與執(zhí)行結(jié)果可與rand()參照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
執(zhí)行
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7