首頁  >  文章  >  後端開發  >  srand(time(0))函數是什麼意思

srand(time(0))函數是什麼意思

藏色散人
藏色散人原創
2019-06-06 10:56:4830059瀏覽

標準函式庫定義了一組隨機數引擎類別和適配器,使用不同數學方法產生偽隨機數。標準庫還定義了一組分佈模板,根據不同的機率產生隨機數。引擎和分佈類型的名字都與它們的數學性質是相對應的。

srand(time(0))函數是什麼意思

但我們今天就接觸一點點最基礎的知識。

電腦沒有辦法產生真正的隨機數的,是用演算法模擬,所以你只呼叫rand,每次出來的東西都是一樣的。設定一個種子後,根據種子的不同,就可以產生不同的數了。而怎麼保證種子的不同呢?最簡單的辦法當然是用永遠在前進的時間。

srand(time(0)) ;//先设置种子
rand();//然后产生随机数

Srand是種下隨機種子數,你每回種下的種子不一樣,用Rand得到的隨機數就不一樣。為了每回種下一個不一樣的種子,所以就選用Time(0),Time(0)是得到當前時時間值(因為每時每刻時間是不一樣的了)。

srand(time(0)) ;就是給這個演算法一個啟動種子,也就是演算法的隨機種子數,有這個數以後才可以產生隨機數,用1970.1.1至今的秒數,初始化隨機數種子。

參考案例

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main ( void )
{
    int i;
    
    srand(time(0));
    
    /* 输出 10 个随机数. */
    for (i = 0; i < 10; i++)
        printf( "%6d/n", rand());
}

輸出結果:

   22614
   15772
   30620
   24913
    7556
   31659
   27876
   27229
   25083
   16564

相關推薦:《C影片教學

以上是srand(time(0))函數是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn