C C 函式srand 和rand 的使用

2021-07-11 22:36:27 字數 905 閱讀 7241

這兩個函式的使用都要包含標頭檔案stdio.h,rand()函式返回的是乙個0到rand_max的隨機數,rand_max這是乙個常數,它的值在windows和linux下是不同的。在我的機子上這個值是32767,也就是說,在我的機子上,rand()這個函式會返回乙個0到32767的隨機數。(這裡不討論返回的是不是真正意義上的隨機數的問題,只討論它的用法。)

產生某個區間的隨機數

如果我們需要這個函式產生某個區間的隨機數怎麼做呢?首先我們看看rand()函式原型:int rand(void),可以看出這個函式不接受任何引數,那麼怎麼讓他產生某個區間的隨機呢?通用的公式是這樣的:n+rand()%m,這個公式的意思產生區間[n,n+m)的隨機數,即包括n到不包括m之間的隨機數。由區間可以看出,式子中n是區間的開始,m你想要的區間的差。

這個通用公式也很容易理解,因為rand()這個函式不接受任何引數,所以他本身始終表示0到rand_max的隨機數,所以我們可以在它產生預設隨機數的基礎上加n,就是想要的區間的起始,在用m表示區間的結束。

需要注意的是,這樣的產生的隨機數預設是左閉右開的:[n,m)

srand函式

這個函式通常和rand()函式配合使用以達到最好的隨機數效果。它的原型是:void srand(unsigned int seed),為函式rand()提供隨機數種子。這個函式要在rand()呼叫之前呼叫,才能達到應有的效果。

srand 和rand 函式詳解

c語言 c 或 int rand void void srand unsigned seed 函式說明 rand函式產生的隨機數嚴格意義講不是真正的隨機數,它裡面採用了線性同餘法計算出隨機數,該方法有個最大週期m,也就是說該方法實在一定的範圍內生成一串數字,不過這個m一般來說比較大,所以正常使用時一...

rand 和srand 函式的用法

一 rand rand 函式用來產生隨機數,但是,rand 的內部實現是用線性同餘法實現的,是偽隨機數,由於週期較長,因此在一定範圍內可以看成是隨機的。rand 會返回乙個範圍在0到rand max 32767 之間的偽隨機數 整數 在呼叫rand 函式之前,可以使用srand 函式設定隨機數種子,...

rand 和srand 函式的用法

一 rand rand 函式用來產生隨機數,但是,rand 的內部實現是用線性同餘法實現的,是偽隨機數,由於週期較長,因此在一定範圍內可以看成是隨機的。rand 會返回乙個範圍在0到rand max 32767 之間的偽隨機數 整數 在呼叫rand 函式之前,可以使用srand 函式設定隨機數種子,...