溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

c語(yǔ)言中srand(time(0))函數(shù)指的是什么意思

發(fā)布時(shí)間:2020-11-20 14:16:12 來(lái)源:億速云 閱讀:923 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下c語(yǔ)言中srand(time(0))函數(shù)指的是什么意思,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

標(biāo)準(zhǔn)庫(kù)定義了一組隨機(jī)數(shù)引擎類(lèi)和適配器,使用不同數(shù)學(xué)方法生成偽隨機(jī)數(shù)。標(biāo)準(zhǔn)庫(kù)還定義了一組分布模板,根據(jù)不同的概率生成隨機(jī)數(shù)。引擎和分布類(lèi)型的名字都與它們的數(shù)學(xué)性質(zhì)是相對(duì)應(yīng)的。

但是我們今天就接觸一點(diǎn)點(diǎn)最基礎(chǔ)的知識(shí)。

計(jì)算機(jī)沒(méi)有辦法產(chǎn)生真正的隨機(jī)數(shù)的,是用算法模擬,所以你只調(diào)用rand,每次出來(lái)的東西是一樣的。設(shè)置一個(gè)種子后,根據(jù)種子的不同,就可以產(chǎn)生不同的數(shù)了。而怎么保證種子的不同呢?最簡(jiǎn)單的辦法當(dāng)然是用永遠(yuǎn)在向前的時(shí)間。

srand(time(0)) ;//先設(shè)置種子
rand();//然后產(chǎn)生隨機(jī)數(shù)

Srand是種下隨機(jī)種子數(shù),你每回種下的種子不一樣,用Rand得到的隨機(jī)數(shù)就不一樣。為了每回種下一個(gè)不一樣的種子,所以就選用Time(0),Time(0)是得到當(dāng)前時(shí)時(shí)間值(因?yàn)槊繒r(shí)每刻時(shí)間是不一樣的了)。

srand(time(0)) ;就是給這個(gè)算法一個(gè)啟動(dòng)種子,也就是算法的隨機(jī)種子數(shù),有這個(gè)數(shù)以后才可以產(chǎn)生隨機(jī)數(shù),用1970.1.1至今的秒數(shù),初始化隨機(jī)數(shù)種子。

參考案例

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main ( void )
{
    int i;
    
    srand(time(0));
    
    /* 輸出 10 個(gè)隨機(jī)數(shù). */
    for (i = 0; i < 10; i++)
        printf( "%6d/n", rand());
}

輸出結(jié)果:

   22614
   15772
   30620
   24913
    7556
   31659
   27876
   27229
   25083
   16564

看完了這篇文章,相信你對(duì)c語(yǔ)言中srand(time(0))函數(shù)指的是什么意思有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI