rand函數的使用
函數說明
函數原型 | 頭文件 | 返回值 |
---|---|---|
int rand(void) | <stdlib.h> | 返回0到RAND_MAX之間的整數值,RAND_MAX的範圍最少在32767之間(int),即雙字節(16位)。若unsigned int雙字節是65535 |
備註說明:因爲rand的內部是用線性同餘法做的,不是真的隨機數,只不過因爲其週期特別長,所以在一定範圍內可以看成是隨機的,rand()會返回一隨機值,範圍在0到RAND_MAX間,在調用此函數產生隨機數前,必須利用srand()設好隨機數種子,若沒有設隨機數種子,rand()在調用時會自動設隨機數種子爲1。
例子:先看一下不調用srand時,函數的兩次運行結果。
可以看到,如果不調用srand()的話,那麼前後兩次的運行結果都是一樣的,也就是說由於srand默認的隨機數種子爲1,所以,造成了rand()的輸出結果是一致的。
接下來,加入srand(),並且獲取當前的系統時間作爲隨機數種子。
加入了srand()以後,rand()每次的輸出結果都不同了,實現了真正的隨機。