C語言生成隨機數
rand函數
函數介紹
rand()函數是產生隨機數的一個隨機函數:
#include<stdlib.h>
int rand(void);
返回值:
rand()返回值爲一隨機數值,範圍在0至RAND_MAX 間(RAND_MAX定義在stdlib.h,其值爲2147483647)。
注:在調用此函數前,必須先利用srand()設好隨機數種子。如果未設隨機數種子,rand()在調用時會自動設隨機數種子爲1。
示例一:
代碼:
/*************************************************************************
> File Name: rand.c
> Author: AnSwEr
> Mail: [email protected]
> Created Time: 2015年10月24日 星期六 20時50分59秒
************************************************************************/
/*
* 產生1到6的隨機數
*/
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i = 0;
for(i=0;i<10;i++)
{
printf("%d ",rand()%6+1);
}
printf("\n");
return 0;
}
運行結果:
說明:這裏兩次運行的結果相同,是因爲未利用srand()設置隨機數種子,所以rand()在調用時會自動設隨機數種子爲1。
srand函數
函數介紹
srand函數是隨機數發生器的初始化函數:
#include<stdlib.h>
void srand (unsigned int seed);
參數:
seed必須是個整數,通常可以利用geypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,那麼rand()所產生的隨機數值會像上面的示例一每次就會一樣。
示例二:
代碼:
/*************************************************************************
> File Name: srand.c
> Author: AnSwEr
> Mail: [email protected]
> Created Time: 2015年10月24日 星期六 21時01分58秒
************************************************************************/
/*
* 產生1-6的隨機數
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i = 0;
srand((unsigned int)time(NULL));
for(i=0;i<10;i++)
{
printf("%d ",rand()%6+1);
}
printf("\n");
return 0;
}
運行結果:
哈哈,這下兩次結果就不同了吧。
總結
關於隨機數的知識就先總結這麼多,以後碰到更復雜的再繼續。
反饋與建議
- 微博:@AnSwEr不是答案
- github:AnSwErYWJ
- 博客:AnSwEr不是答案的專欄