c語言srand函數(shù)的用法 c語言中rand()函數(shù)與srand()函數(shù)有什么區(qū)別呢?
c語言中rand()函數(shù)與srand()函數(shù)有什么區(qū)別呢?完全不同。。。。Rand()是一個(gè)隨機(jī)函數(shù),srand()是一個(gè)隨機(jī)種子函數(shù)。沒有真正的隨機(jī)數(shù)來確定rand()的隨機(jī)值。如果沒有srand(
c語言中rand()函數(shù)與srand()函數(shù)有什么區(qū)別呢?
完全不同。。。。Rand()是一個(gè)隨機(jī)函數(shù),srand()是一個(gè)隨機(jī)種子函數(shù)。沒有真正的隨機(jī)數(shù)來確定rand()的隨機(jī)值。如果沒有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語言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í)間開始的,因?yàn)閷?shí)時(shí)時(shí)間的值是不斷變化的,所以start rand()函數(shù)生成的偽隨機(jī)數(shù)序列可以達(dá)到混淆真假的效果。
C語言srand和rand函數(shù)怎么用?
哈哈,這是我遇到的問題,并進(jìn)行了一些研究。實(shí)際上,這是因?yàn)閟rand()函數(shù)是一個(gè)隨機(jī)數(shù)生成函數(shù),這意味著C語言中的隨機(jī)數(shù)是由它控制的
!如果在應(yīng)用srand()函數(shù)之前使用隨機(jī)函數(shù)rand(),則相當(dāng)于使用srand(1)
并將語句srand((unsigned)time(null))放入for循環(huán),即使用srand((unsigned)time(0))。因此,如果此語句不更改,則生成的隨機(jī)數(shù)不會(huì)更改
!如果你不明白,你可以問我!