c語言rand函數的用法
時間:
長思709由 分享
c語言rand函數的用法
在C語言中,rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,下面我們來看看c語言rand函數的用法。
rand(產生隨機數)
相關函數
srand
表頭文件
#include<stdlib.h>
定義函數
int rand(void)
函數說明
rand()會返回一隨機數值,范圍在0至RAND_MAX 間。在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。關于隨機數種子請參考srand()。
返回值
返回0至RAND_MAX之間的隨機數值,RAND_MAX定義在stdlib.h,其值為2147483647。
范例
/* 產生介于1 到10 間的隨機數值,此范例未設隨機數種子,完整的隨機數產生請參考
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(設置隨機數種子)
相關函數
rand
表頭文件
#include<stdlib.h>
定義函數
void srand (unsigned int seed);
函數說明
srand()用來設置rand()產生隨機數時的隨機數種子。參數seed必須是個整數,通??梢岳胓eypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。
返回值
范例
/* 產生介于1 到10 間的隨機數值,此范例與執(zhí)行結果可與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