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