rand函式和srand函式生成隨機數

2021-10-02 16:13:35 字數 1133 閱讀 5005

1.使用的時候不需要引入別的標頭檔案

2.直接使用的 rand 函式生成隨機數會產生0 – rand_max(32767)之間的隨機數

3.產生的隨機數其實都是偽隨機數,是開發人員事先預定好的數字順序

4.每次生成隨機數都需要乙個種子,在不使用 srand 函式的情況下計算機預設種子是不變的

5.也就是說,如果只用 rand 函式,那麼每次生成的隨機數都一樣

示例一 :

for

(int i =

0; i <

10; i++

)//執行結果 : 41 18467 6334 26500 19169 15724 11478 29358 26962 24464

1.srand函式是為rand函式設定種子的乙個函式,只有每次種子都不同,才能實現隨機

2.srand函式只需呼叫一次即可,切勿放在迴圈裡面呼叫

3.一般情況下使用時間作為種子

引入 time.h 這個庫

介紹乙個函式 : time函式 : 獲取當前系統時間(utc時間)的time_t值

time_t:表示距離 utc 時間 1970-01-01 00:00:00 的秒數。也叫做日歷時,型別是 long

示例二:

srand

(time(0

));for

(int i =

0; i <

10; i++

)//執行結果1 : 10153 747 27798 6001 4281 25355 28294 19956 20095 17167

//執行結果2 : 10385 10220 18203 10560 15720 9241 19902 8727 12770 6638

另外 : 對於 rand 函式 若想生成 [a,b]之間的隨機數 ,rand()%(b - a + 1)+a,因為計算機的區間都是左開右閉的

例項三 :

srand

(time(0

));for

(int i =

0; i <

100; i++

)//執行結果全部是 [1 , 10]之間的整數

srand 和rand 函式詳解

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

C語言 rand 函式和srand 函式

from 標準庫 被包含於中 提供兩個幫助生成偽隨機數的函式 函式一 int rand void 從srand seed 中指定的seed開始,返回乙個 seed,rand max 0x7fff 間的隨機整數。rand max是vc 中stdlib.h 中巨集定義的乙個字元常量 define ran...

產生隨機函式srand函式和rand函式的使用

srand 初始隨機數發生器 rand 隨機數發生器 當srand 的內容相同時,則在rand 後產生相同的隨機數列 所以當用time null 來進行初始隨機數,根據時間來產生隨機數,這樣就能產生不同的。呼叫方法是srand gettickcount 但是又不能在每次呼叫rand 的時候都用sra...