c生成隨機數

2021-09-06 05:14:12 字數 1124 閱讀 3320

欲生成隨機數,主要用到兩個函式srand,rand。標頭檔案為:

#include

一、函式

1.srand

void srand ( unsigned int seed );

用法:它需要提供乙個種子,這個種子會對應乙個隨機數,如果使用相同的種子後面的 rand() 函式會出現一樣的隨機數。為了防止隨機數每次重複常常使用系統時間來初始化,即使用 time函式來獲得系統時間,它的返回值為從 00:00:00 gmt, january 1, 1970 到現在所持續的秒數,然後將 time_t型資料轉化為(unsigned)型再傳給 srand 函式,即: srand((unsigned) time(&t))  還有乙個經常用法,即: srand((unsigned) time(null)); 直接傳入乙個空指標,因為你的程式中往往並不需要經過引數獲得的 t 資料。srand((int)getpid()); 使用程式的id (getpid()) 來作為初始化種子,在同乙個程式中這個種子是固定的。

2.rand

int rand ( void );

產生乙個偽隨機數(根據 srand 初始的隨機數種子),範圍為 0 - rand_max。rand_max 至少為 32767,我電腦為 

2147483647(int 型為32位),夠用了喝。可通過取模來產生不同範圍的隨機數,如:

int value = rand() % (max + 1 - min) + min;

二、舉例

產生 num 個隨機數,並輸出到檔案 file:

int genrand(long num, char *file)

srand( (unsigned

int)time(0

) );

for (i = 0; i < num; i++)

/*儲存到檔案中

*/file *fp = fopen(file, "w"

);

if (fp ==null)

while (*p)

free(dat);

fclose(fp);

return

0;

}

C 隨機數生成

using system using system.collections.generic using system.text namespace createrandomno return sb.tostring 生成大寫字母隨機數 public static string getabcpwd i...

C 隨機數生成

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

C 隨機數生成

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