C程式設計 隨機函式(rand )

2021-09-02 15:36:48 字數 1196 閱讀 6728

1. 概念 ( 隨機函式 ran

d()rand()

rand()

)庫函式中系統提供了兩個函式用於產生隨機數:srand()和rand()。

函式原型

含義int rand(void);

返回乙個[0,rand_max]間的隨機整數。

void srand(unsigned seed);

引數seed是srand()的種子,用來初始化srand()的起始值。

#include

#include

intmain()

return0;

}

2. 注意點(也是該函式使用時的難點)

問題引出:

如果讀者多次執行上述程式,會發現:上述**雖然每個數字都是隨機數,但是每次執行的結果都一樣。即:

概念解釋:

1)系統在呼叫rand()之前都會自動呼叫srand(),

2) 如果在srand()裡給引數seed指定了乙個值,那麼 rand()就會將seed的值作為產生偽隨機數的初始值;

3)而如果使用者在rand()前沒有呼叫過srand(),那麼系統預設將1作為偽隨機數的初始值,

4) 如果初始值是此時的1或是其他定值,那麼每次rand()產生的隨機數序列都是一樣的,這也就是所謂的「偽隨機數」。

解決辦法:

配合srand函式使用:

#include

#include

#include

intmain()

return0;

}

**解釋

1)srand()裡給引數seed指定了乙個值(我們通常使用 time(null) 或者寫成 time(0) 作為 seed ,因為時間值每秒都不同,)

2)值得注意的是,如果srand()括號中沒有引數的話,程式是會報錯的,因為在函式原型中,srand()函式是要求加上內容的。

語句所需標頭檔案

作用srand(time(null));

#include

保證隨機序列種子不同

rand()

#include

能夠生成隨機數

c 隨機函式rand

一 c 中不能使用random 函式 random函式不是ansi c標準,不能在gcc,vc等編譯器下編譯通過。但在c語言中int random num 可以這樣使用,它返回的是0至num 1的乙個隨機數。可改用c 下的rand函式來實現。1 c 標準函式庫提供一隨機數生成器rand,返回0 ra...

C 隨機函式rand()

每次生成的隨機數都相同 include include rand intmain 每次生成的隨機數都不同 include include include time intmain include include include intmy rand2 a 0 放陣列的組長 include inclu...

C 隨機函式 rand

使用 rand 函式可以獲取 隨機數大小是在0到rand max,值為2147483647,它是在stdlib中定義的,如果我們希望在某個範圍內,可以使用 結合 來實現 但是不難發現,這裡獲得的隨機數是唯一確定的,而不是變化的。所以,如果我們希望獲得變化的隨機數,可以使用下面的方法。因為rand的內...