C語言srand和rand函式怎麼用

2021-05-18 19:30:14 字數 2443 閱讀 7165

1樓:手機使用者

rand()函式,一般bai根srand()函式一起用。du它們在一起,作zhi用是:

產生一個dao隨機數。

通常格專式為:

srand ( (unsigned) time (null) );

a=rand()%x; //a,x,均為整型變屬量,其中,x在之前應被賦值。

srand函式裡面的unsigned也可以換成其它的。例如:int之類的資料型別,但結果也會有相應的變化。

通過rand函式產生隨機數以後,用%x來限定它的範圍。即:0<=a

其原理是:用那個隨機數,去除以x,留下所得餘數,作為最終結果。

誰能結實一下c語言中隨機srand和rand函式的區別

2樓:

rand()產生一個0~32767之間的偽隨機

數。而srand(unsigned t)是為rand()產生偽隨機數

下一個「回種子」。答所謂「種子」就是給偽隨機發生器賦一個初值,因為如果初值一樣,後面產生的偽隨機數的規律也就一樣,達不到「隨機」的目的。所以srand(unsigned t)一般是用機中的實時時間來啟動的,因為實時時間的值每時每刻都在變化,這樣啟動的rand()函式產生的偽隨機數序列就能達到以假亂真的效果。

3樓:匿名使用者

樓上說的比較完善了,我再補充一下。

連續執行若干個rand(),其返回值是同一個隨機數。必須通過srand之後才能產生新的隨機數。

c語言中stdlib標頭檔案是不是包含了srand和rand函式,如果沒有用srand直接用rand是不是每次得到相同隨機數?

4樓:匿名使用者

1 在stdlib.h中,同時包含了srand函式,和rand函式的宣告。

形式為void srand(int value);

int rand(void);

2 如果沒有用srand,在一次程式呼叫rand多次時,每次得到的值是隨機的。

但是如果程式執行多次,每次執行程式時得到的rand結果是相同的。

也就是說,如果不用srand,那麼每次執行程式,多次呼叫rand函式,得到的是一個相同的隨機序列。

5樓:匿名使用者

rand是取得偽隨機數,而srand就是修改隨機種子,不先呼叫srand,隨機出來的就是偽隨機數,都是一樣的。srand只需要呼叫一次就夠了

null其實就是0,time的引數傳進去的是個地址,因此可以傳0進去

6樓:

是的,標頭檔案stdlib.h裡包含了srand和rand函式。如果沒有呼叫srand,那麼rand將產生相同的隨機數「序列」——就是說如果第一次迴圈呼叫rand產生的隨機數序列是88,2,33,55......的話,第二次啟動迴圈呼叫rand產生的隨機數序列仍然是88,2,33,55......產生這一問題的根本原因是偽隨機序列發生器的初始狀態沒有發生變化造成的。

srand函式的功能就是來改變偽隨機序列發生器的初始狀態。srand向偽隨機序列發生器的初始狀態暫存器寫入不同的值(狀態字),就能使rand函式產生不同的序列,就解決了「序列重複」的問題。顯然,人為安排狀態字是不現實的,因為安排了就變不了了。

所以用null來呼叫time函式獲致系統時鐘值轉換成無符號整數數作為srand的引數,這樣每呼叫一次srand都會寫入不同的初始狀態字(因為時鐘每時每刻都是變化的),就達到目的了。

那就算了吧!我不知道與哪個長得像,這裡沒有一個像的,也沒有一個真正講出要用srand的原因。我寫的時候誰的都沒有參考,別說是複製。如果可以,把認為複製的答案弄出來我看看。

7樓:匿名使用者

不用srand的話,每次呼叫rand會有相同的情況,得不到很好的隨機效果

srand ((int)time(null))這麼寫可以是可以null改為0也行,反正只是一個巨集而已

但是一般會規範的寫作srand((unsigned int)time(null));

自定義隨機種子的話,直接srand((unsigned int) 自定義的隨機種子 )

8樓:

你所說都對。

使用前,設定不同的種子,則會得到不同的隨機數。

求教c語言中rand()和srand()具體用法的區別?另外,rand()是產生0到1之間的隨機數

9樓:匿名使用者

rand()產生一個0~32767之間的偽隨機數。而srand(unsigned t)是為rand()產生偽隨機數下一個「種子」

。所謂「回種子」就是給偽隨機發答生器賦一個初值,因為如果初值一樣,後面產生的偽隨機數的規律也就一樣,達不到「隨機」的目的。所以srand(unsigned t)一般是用機中的實時時間來啟動的,因為實時時間的值每時每刻都在變化,這樣啟動的rand()函式產生的偽隨機數序列就能達到以假亂真的效果

c語言中rand 函式怎麼用,C語言srand和rand函式怎麼用?

rand函式功能為獲取一個偽隨機數 偽隨機數的概念下面會有介紹 一 函式名 rand 二 宣告 int rand 三 所在標頭檔案 stdlib.h 四 功能 返回一個偽隨機數。之所以說是偽隨機數,是因為在沒有其它操作下,每次執行同一個程式,呼叫rand得到的隨機數序列是固定的 不是真正的 隨機 五...

c語言中如何用rand()函式產生20 90的隨機整數

c語言主要通過rand 函式實現隨機數,要產生 n,m 的隨機數,只要通過表示式rand n m即可實現。測試 如下,輸出20個 20,90 的隨機數 include include include int main return 0 int rand void 函式返回一個在零到rand max ...

c語言使用隨機函式rand編寫猜數字的遊戲

include include include define n 10 main system pause 測試資料 請輸入您猜的那個數 10第1次猜測,很遺憾您猜小了!請輸入您猜的那個數 15第2次猜測,很遺憾您猜大了!請輸入您猜的那個數 12第3次猜測,恭喜您猜對了,電腦隨機數是12!inclu...