rand()與 srand()
阿新 • • 發佈:2018-06-30
return 初始 其中 div signed std tdi 隨機數生成 AI
一 頭文件 <time.h>
srand()就是給rand()提供種子seed。
在C語言中,srand()與rand()是隨機函數,其中srand函數是偽隨機數發生器的初始化函數,原型void srand(unsigned int seed);rand()是偽隨機數生成器,在調用了srand()產生的種子以後,產生偽隨機數。
C語言中語句srand( (time(NULL) ) ; 表示設置一個隨機種子,每次運行都能保證隨機種子不同。
在C語言中,rand()函數可以用來產生隨機數,但是這不是真正意義上的隨機數,是一個偽隨機數,它是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值。因此,C提供了srand()函數,它的原型是 void srand( int a)。用來改變這個種子值。
srand( (time(NULL) )中time(NULL)函數是得到一個從1900年1月1日到現在的時間秒數,這樣每一次運行程序的時間的不同就可以保證得到不同的隨機數了
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); printf("%d",rand()); return 0; }
二 頭文件 <windows.h>
#include <stdio.h> #include<stdlib.h> #include <time.h> #include <windows.h> int main() { srand(time(NULL));//time.h printf("%d",rand()); Sleep(500);//windows.h printf("xxx"); return 0; }
輸出:
28666xxx Process returned 0 (0x0) execution time : 0.537 s
rand()與 srand()