1. 程式人生 > >rand()與 srand()

rand()與 srand()

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()