欲生成隨機數,主要用到兩個函式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 的種子,用來初始化...