標準庫 中
int rand(void)函式是真正的隨機數生成函式,但是每次用rand()需要用srand設定的種子來產生隨機數。如果你不呼叫srand,系統會在rand之前自動加乙個srand(1),但是這樣一來種子就是固定的了,隨機數也是固定的,所以rand()也稱偽隨機數。
為了達到真正的隨機,那麼關鍵害的是srand這個函式,所以為了每次srand()引數都不一樣,我們通常用time庫的東西來做引數 time_t time(0):time_t 被定義為長整形,返回從2023年1月1日到現在的時間用秒表示。引數一般為:
(unsigned)time(0)或者(unsigned)time(null)後面乘上某個合適的整數。 例如,srand((unsigned)time(null)*10)
rand()返回0到
rand_max的值,
rand_max是標準庫定義的字元常量,不同編譯器不同,最小32767,最大
2147483647。如果你想得到a到b的值,
通常都是用rand()%(b - a + 1) + a.如果是10到20,rand()/11,得到0~10,再加上10就正好啦
好到這就差不多理解了原理,下面是具體實現: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include //時間的標頭檔案
#include //srand()標頭檔案
#include
voidmain()
}
下面是time函式的簡介。
函式名稱:
time
函式原型:
time_t time(time_t *timer)
函式功能:
得到機器的日曆時間或者設定日曆時間
函式返回:
機器日曆時間
引數說明:
timer=null時得到機器日曆時間,timer=時間數值時,用於設定日曆時間,time_t是乙個long型別
所屬檔案:
#include
#include
#include
int main()
C語言rand 函式產生隨機數
include include int main 產生1 6之間的隨機數 執行結果 函式一 int rand void 返回乙個 0,rand max 間的隨機整數。函式二 void srand unsigned seed 引數seed是srand 的種子,用來初始化srand 的起始值。系統在呼叫...
c 隨機數函式rand
c語言中rand 函式生成隨機數的用法 詳細介紹 1 使用該函式首先應在開頭包含標頭檔案stdlib.h include c 建議使用 include,下同 2 在標準的c庫中函式rand 可以生成0 rand max之間的乙個隨機數,其中rand max 是stdlib.h 中定義的乙個整數,它與...
C語言使用rand函式生成隨機數
目錄 生成隨機數使用rand 函式 int rand void 標頭檔案目前該 隨機數 貌似成功生成 大家有木有發現其實這三次的執行結果生成的隨機數其實是一樣的,沒錯,我說的就是三次,第一次是程式設計客棧41 18467 6334 26500 19169 15724 11478 29358 2696...