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