rand 產生隨機數 及其和clock 的不同

2022-02-26 12:05:56 字數 984 閱讀 1818

首先我們要對rand&srand有個總體的看法:srand初始化隨機種子,rand產生隨機數。

定義函式 : int rand(void)

函式說明 :

因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand()會返回一隨機數值,範圍在0至rand_max 間。在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。rand ()產生的是假隨機數字,每次執行時是相同的。若要不同,以不同的值來初始化它.初始化的函式就是srand()。

返回值:

返回0至rand_max之間的隨機整數值,rand_max的範圍最少是在32767之間(int),即雙位元組(16位數)。若用unsigned int 雙位元組是65535,四位元組是4294967295的整數範圍。

0~rand_max每個數字被選中的機率是相同的。

示例如下:

#include#include#include//產生range_min-range_max之間的隨機數,必須初始化種子,否則每次結果都一樣

int main(void)

return 0;

}

clock計算的是程序實際使用的各種時間,time是wall time,即鐘錶時間,此時間內作業系統可能會排程多個程序執行。

函式名: clock 

功 能: 確定處理器時間 

用 法: clock_t clock(void); 

程式例: 

#include

#include#includeint main(void)

而time()是個時間的函式,time(null)就是去當前的時間

程式例項:

#include#includeint main(void)  

rand 和 srand產生隨機數

在c語言中,rand 函式可以用來產生隨機數,但是這不是真真意義上的隨機數,是 乙個偽隨機數,是根據乙個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一係數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機 數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你...

rand 和srand 產生偽隨機數

標準庫 被包含於 中 提供兩個幫助生成偽隨機數的函式 函式一 int rand void 從srand seed 中指定的seed開始,返回乙個 seed,rand max 0x7fff 間的隨機整數。函式二 void srand unsigned seed 引數seed是rand 的種子,用來初始...

C 利用srand和rand產生隨機數

他人部落格,時間久了,忘記 轉的了。以後發現再補充出處。產生一到十的十個隨機數 include include include include using namespace std define max 10 int main int main srand unsigned time null f...