srand函數(shù)用法 c語(yǔ)言中rand()函數(shù)與srand()函數(shù)有什么區(qū)別呢?
c語(yǔ)言中rand()函數(shù)與srand()函數(shù)有什么區(qū)別呢?完全不同。。。。Rand()是一個(gè)隨機(jī)函數(shù),srand()是一個(gè)隨機(jī)種子函數(shù)。沒(méi)有真正的隨機(jī)數(shù)來(lái)確定rand()的隨機(jī)值。如果沒(méi)有srand(
c語(yǔ)言中rand()函數(shù)與srand()函數(shù)有什么區(qū)別呢?
完全不同。。。。Rand()是一個(gè)隨機(jī)函數(shù),srand()是一個(gè)隨機(jī)種子函數(shù)。沒(méi)有真正的隨機(jī)數(shù)來(lái)確定rand()的隨機(jī)值。如果沒(méi)有srand(),rand()的值每次都相同
rand()函數(shù)與srand()函數(shù)一起使用。它們一起產(chǎn)生一個(gè)隨機(jī)數(shù)。
通常的格式是:
srand((unsigned)time(null))
a=rand()%X//a,X,它們都是整數(shù)變量,其中X應(yīng)該在之前賦值。
srand函數(shù)中的unsigned也可以被其他函數(shù)替換。例如:int和其他數(shù)據(jù)類型,但結(jié)果會(huì)相應(yīng)地更改。
按隨機(jī)數(shù)函數(shù)生成隨機(jī)數(shù)后,使用%X限制其范圍。即:0
原理是:使用該隨機(jī)數(shù),去掉x,剩下的部分作為最終結(jié)果。
C語(yǔ)言srand和rand函數(shù)怎么用?
Rand()生成一個(gè)介于0和32767之間的偽隨機(jī)數(shù)。Srand(unsignedt)是rand()的下一個(gè)“種子”。所謂“種子”,就是給偽隨機(jī)發(fā)生器賦一個(gè)初始值,因?yàn)槿绻跏贾迪嗤?,以后生成的偽隨機(jī)數(shù)的規(guī)律是相同的,這就不能達(dá)到“隨機(jī)”的目的。因此,srand(unsigned T)在計(jì)算機(jī)中通常是以實(shí)時(shí)時(shí)間開(kāi)始的,因?yàn)閷?shí)時(shí)時(shí)間的值是不斷變化的,所以start rand()函數(shù)生成的偽隨機(jī)數(shù)序列可以達(dá)到混淆真假的效果。
C語(yǔ)言srand和rand函數(shù)怎么用?
srand函數(shù)在stdlib中。H頭文件,時(shí)間函數(shù)在時(shí)間中。H頭文件。Srand通常與rand函數(shù)結(jié)合生成隨機(jī)數(shù)據(jù)。通常,srand和Rand一起用于生成偽隨機(jī)數(shù)序列。在生成隨機(jī)數(shù)之前,rand函數(shù)需要系統(tǒng)提供生成偽隨機(jī)數(shù)序列的種子。Rand根據(jù)種子的值生成一系列隨機(jī)數(shù)。如果系統(tǒng)提供的種子沒(méi)有改變,則每次調(diào)用rand函數(shù)生成的偽隨機(jī)數(shù)序列是相同的。Srand(unsigned seed)通過(guò)參數(shù)seed改變系統(tǒng)提供的seed值,使rand函數(shù)每次調(diào)用生成的偽隨機(jī)數(shù)序列不同,從而實(shí)現(xiàn)真正意義上的“隨機(jī)”。通常,系統(tǒng)時(shí)間可以用來(lái)改變系統(tǒng)的種子值,即srand(time(null)),它可以為rand函數(shù)提供不同的種子值,然后生成不同的隨機(jī)數(shù)序列。time time(time *t)主要用來(lái)獲取當(dāng)前系統(tǒng)時(shí)間,返回的結(jié)果是time 類型,其值表示UTC時(shí)間1970年1月1日00:00:00到當(dāng)前時(shí)間的秒數(shù)。如果t是空指針,則直接返回當(dāng)前時(shí)間;如果t不是空指針,則返回當(dāng)前時(shí)間,并將返回值賦給指針t指向的內(nèi)存空間。