srand的頭文件 srand是什么意思?
srand是什么意思?Srand函數(shù)是隨機(jī)數(shù)發(fā)生器的初始化函數(shù)。通過srand中的參數(shù)改變系統(tǒng)提供的種子值,使得rand函數(shù)每次調(diào)用產(chǎn)生的偽隨機(jī)數(shù)序列不同,從而實(shí)現(xiàn)真正意義上的“隨機(jī)”。此種子的值應(yīng)為
srand是什么意思?
Srand函數(shù)是隨機(jī)數(shù)發(fā)生器的初始化函數(shù)。通過srand中的參數(shù)改變系統(tǒng)提供的種子值,使得rand函數(shù)每次調(diào)用產(chǎn)生的偽隨機(jī)數(shù)序列不同,從而實(shí)現(xiàn)真正意義上的“隨機(jī)”。此種子的值應(yīng)為整數(shù)。也就是說,10只是一個(gè)隨機(jī)數(shù)。實(shí)際上,你輸入的數(shù)字是一樣的。在執(zhí)行期間(如果程序未關(guān)閉),輸入的數(shù)字不會(huì)影響結(jié)果。但是,每次啟動(dòng)此程序時(shí),如果種子值與上一個(gè)相同,則結(jié)果值將相同。因此,srand((unsigned)time(null));通常用于播種。因?yàn)槊看巫x取的時(shí)間值可以看作是隨機(jī)的,所以可以生成真正的隨機(jī)數(shù)
srand(time(0))在代碼中的意思是:用當(dāng)前時(shí)間來設(shè)置隨機(jī)數(shù),用rand函數(shù)來生成算法的種子值。
其中,time(time)T*T)是C標(biāo)準(zhǔn)庫(kù)函數(shù)。如果t是空指針,則直接返回當(dāng)前時(shí)間。如果t不是空指針,它將返回當(dāng)前時(shí)間并將返回值提供給t所指的內(nèi)存空間。在srand(unsigned seed)函數(shù)中,參數(shù)unsigned seed表示隨機(jī)數(shù)生成器的初始值(seed value)。Srand設(shè)置生成一系列偽隨機(jī)數(shù)生成器的起點(diǎn)。要重新初始化生成器,可以使用1作為種子值。任何其他值都會(huì)將生成器隱藏為隨機(jī)起點(diǎn)。Rand搜索生成的偽隨機(jī)數(shù)。