rand() 可獲得偽隨機(jī)數(shù)。但是僅僅這樣寫的話,同一段代碼每次運(yùn)行程序獲得的隨機(jī)數(shù)相同。
因?yàn)樵谡{(diào)用rand()前自動(dòng)調(diào)用了srand(1); 這條語句。 只有當(dāng)srand()的形參是變化的時(shí)每次運(yùn)行獲得的隨機(jī)數(shù)才不同。
用什么樣的隨時(shí)變化的參數(shù)呢? 用time(NULL), 即srand((unsigned)time(NULL)); rand(); 這樣每次運(yùn)行得到的隨機(jī)數(shù)不同。
如何獲得某個(gè)區(qū)間的隨機(jī)數(shù)?
---- 如果是區(qū)間[0,n), rand()%n 就可以了
---- 如果是區(qū)間[m,n), rand()%n+m 就可以了
----如果是區(qū)[0,1), rand()/double(RAND_MAX) 就可以可以了。(RAND_MAX在cstdlib里有定義)
這里有更詳細(xì)的介紹:
http://blog.csdn.net/zhoubl668/archive/2009/01/04/3704604.aspx