隨機函式rand()的使用方法 C語言

2022-06-22 05:42:12 字數 1421 閱讀 2197

所需包含的標頭檔案:

1 #include

rand()函式是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說c語言的隨機並不是真正意義上的隨機,有時候也叫偽隨機數,使用 rand() 生成隨機數之前需要用隨機發生器的初始化函式 srand(unsigned seed)(也位於 stdlib.h 中) 進行偽隨機數序列初始化,seed 又叫隨機種子,通俗講就是,如果每次提供的 seed 是一樣的話,最後每一輪生成的幾個隨機值也都是一樣的,因此叫偽隨機數,所以需要每次提供不同的 seed 達到完全的隨機,我們通常用時間函式 time(null) 作為 seed ,因為時間值每秒都不同,這個函式需要包含以下標頭檔案:

#include

1 #include 2 #include 3 #include 4

intmain()

5

以上是用偽隨機數的**,執行結果:

899

1755

1010

無論執行多少次,結果都依然是以上隨機數,不會改變,因為每次設定的種子seed都是1。

如把seed換成time(null),每次就不一樣了,如下:

1 #include 2 #include 3 #include 4

intmain()

5

執行結果:

163

4559

810104

2642

4325

129

這裡的time(null)的結果是乙個類似於1524655706的數字,並且每秒都在遞增 1,也就達成了 srand() 的 seed 不斷變化的目的,不斷生成新的隨機數。但是我們自身在用rand()函式時,即使不呼叫srand()也沒事,因為系統好像會自動呼叫。

注意一下函式rand()函式括號內不需要加引數,直接呼叫rand()的話會生成下面這樣的數:

17163

2663

24810

4875

26975

14119

22193

11233

26009

20105

所以我們想要生成指定範圍的隨機數的話就需要使用到求餘運算子%,這裡有個規律:例如我們需要 0–10的隨機數時,就寫成rand()%11,0–100就寫成rand()%101,就是運算子後的數字需要比需求範圍極值大 1,這其實就是取餘運算的原理。舉個例子:對10取餘,餘數就是在0~9的範圍。

C 中rand 隨機函式使用方法

1rand 不需要引數,它會返回乙個從0到最大隨機數的任意整數,最大隨機數的大小通常是固定的乙個大整數。2如果你要產生0 99這100個整數中的乙個隨機整數,可以表達為 int num rand 100 這樣,num的值就是乙個0 99中的乙個隨機數了。3如果要產生1 100,則是這樣 int nu...

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...