1. 程式人生 > >C語言 產生隨機數

C語言 產生隨機數

計算機 隨機數種子 see 定義 int include i++ srand函數 這一

rand()函數

#include <stdlib.h>
int rand(void);

rand()是根據某個種子,以特定的算法,計算出一系列數的函數。返回的數在0和RAND_MAX之間。RAND_MAX定義在stdlib.h中,至少是32767。

然而,這生成的是偽隨機數,因為種子在計算機開機後就設定好了,所以這一系列數都是可預測的,每次得出的數列都是相等的。想要得到真正的隨機數,必須重新設定這個種子。

srand()函數

#include <stdlib.h>
void srand(unsigned int seed);

srand(seed)是C語言中,用於設定隨機數種子的函數,通常用時間作為seed,每次運行的時間都不同,所以產生的隨機數種子也不同。srand(time(NULL))

如何產生隨機數

  1. 調用srand(time(NULL)),設置隨機數種子
  2. 反復調用rand(), 產生隨機數
#include <stdlib.h>
#include <stdio.h>
#include <time.h>           
 
void main( void )
{
  int i;
  srand((unsigned)time(NULL));          
    for(i = 0; i < 10; i++) {                          
        printf("%d\n", rand());
    }
}

C語言 產生隨機數