1. 程式人生 > >c語言隨機數生成

c語言隨機數生成

    C標準庫中生成偽隨機數的是rand函式,使用這個函式需要包含標頭檔案stdlib.h,它沒有引數,返回值是一個介於0RAND_MAX之間的接近均勻分佈的整數。 RAND_MAX是該標頭檔案中定義的一個常量,在不同的平臺上有不同的取值,但可以肯定它是一個非常大的整數。

    通常我們用到的隨機數是限定在某個範圍之中的,例如限定在某個範圍之中的,例如0~9,而不是0~RAND_MAX,我們可以用%運算子將rand函式的返回值處理一下:int x = rand() % 10;

    上述的偽隨機數雖然在分佈上是相對均勻的,但是存在一個缺點:每次執行的結果一樣。這樣有很大的缺陷,因此,C

標準庫允許我們自己指定一個初值,然後在此基礎上生成偽隨機數,這個初值稱為Seed,可以用srand函式指定Seed。通常我們通過別的途徑得到一個不確定的數作為Seed,例如呼叫time函式得到當前系統時間距19701100:00:00[18]的秒數,然後傳給srandsrand(time(NULL));然後再呼叫rand,得到的隨機數就和剛才完全不同了。呼叫time函式需要包含標頭檔案time.h,這裡的NULL表示空指標 。