C語言生成隨機數

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;
}

運行結果:
這裏寫圖片描述

哈哈,這下兩次結果就不同了吧。

總結

關於隨機數的知識就先總結這麼多,以後碰到更復雜的再繼續。

反饋與建議

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章