小編給大家分享一下c語言中srand(time(0))函數(shù)指的是什么意思,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺(tái)小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了漠河免費(fèi)建站歡迎大家使用!
標(biāo)準(zhǔn)庫(kù)定義了一組隨機(jī)數(shù)引擎類和適配器,使用不同數(shù)學(xué)方法生成偽隨機(jī)數(shù)。標(biāo)準(zhǔn)庫(kù)還定義了一組分布模板,根據(jù)不同的概率生成隨機(jī)數(shù)。引擎和分布類型的名字都與它們的數(shù)學(xué)性質(zhì)是相對(duì)應(yīng)的。
但是我們今天就接觸一點(diǎn)點(diǎn)最基礎(chǔ)的知識(shí)。
計(jì)算機(jī)沒有辦法產(chǎn)生真正的隨機(jī)數(shù)的,是用算法模擬,所以你只調(diào)用rand,每次出來的東西是一樣的。設(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#include #include 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語言中srand(time(0))函數(shù)指的是什么意思有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!