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