誰有srand函式和rand函式源程式

2021-03-03 21:51:45 字數 2446 閱讀 4287

1樓:匿名使用者

duglibc的源**

zhiglibc-2.21/stdlib/目錄下面找到rand.c、daorand_r.

c裡面有rand()函式的源**random.c與random_r.c裡面有srand()函式的源**

只能幫你到這裡了

c語言中rand()函式與srand()函式有什麼區別呢

2樓:匿名使用者

完全不同。。。。

rand()是隨機函式 ,取數用的

srand()是隨機種子函式,決定 rand()的隨機值電腦沒有真正意義上的隨機數 ,如果沒有srand()每次 rand()的值都是相同的

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

3樓:

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

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

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

4樓:匿名使用者

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

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

誰可以幫我詳細的解釋一下c語言裡函式rand()和srand()的用法

5樓:晴天有我

srand是用

bai來設定隨機時間的種子,一般du與rand()結合zhi使用dao。否則直接用rand()的話,每次執行程式的版結果都相同。

原型:int srand (unsigned int seed);

srand((unsigned) time(&t));此句權的引數使用time()函式獲得系統時間作為種子,並且把獲得的時間強制轉換為unsigned。

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

6樓:匿名使用者

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

形式為void srand(int value);

int rand(void);

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

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

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

7樓:匿名使用者

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

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

8樓:

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

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

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

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

9樓:匿名使用者

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

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

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

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

10樓:

你所說都對。

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

指數函式與對數函式的關係指數函式和對數函式有什麼關係?

指數4 64算的是4的3次方 對數log 64 3算的是4的?次方 64它們是互為逆運算的 inverseoperation 在初等數學中還不能體會出對數化成指數,指數化成對數的靈便。如y 2 x e ln2 x e xln2 dy dx ln2 e xln2 ln2 2 2 3 xdx e ln3...

冪函式和指數函式有什麼區別,如何區別指數函式和冪函式

一 定義不同,從兩copy者的數學表示式bai 來看,兩者的未知量x的位置du剛好互換。zhi 指數函式 自變數x在指dao數的位置上,y a x a 0,a不等於1 當a 1時,函式是遞增函式,且y 0 當00.冪函式 自變數x在底數的位置上,y x a a不等於1 a不等於1,但可正可負,取不同...

Php類和函式有什麼差別,php中變數和函式的區別

樓主得去多瞭解一下物件導向。舉個例子給你聽吧比如你要做個電子商務 那肯定會有購物車功能。那我們先建立一個購物車的類,購物車class,那光一個類沒什麼用啊。那我們要建立很多方法和變數,比如商品加入購物車function,修改數量function,取消已經新增商品function。這樣一個購物車的類就...