陈劲贤 2009年09月16日 星期三 20:05 | 1152次浏览 | 4条评论
c++产生随机数的函数是rand(),它没有参数,返回o至RAND_MAX之间的随机整数(其实是伪随机)。RAND_MAX是系统定义的一个宏(?),我在VS2005上测试的结果显示RAND_MAX应该是一个五位数。如果要自定义一个随机数,可以用参数指定随机数的范围,可以这样定义:
double random(double start,double end)
{
return start+(end-start)*rand()/(RAND_MAX+1.0);
}
解释:由于rand()函数返回0~RAND_MAX之间的值,则它是一个小于RAND_MAX+1.0的值,那么它除以RAND_MAX,就是一个0~1之间的数了。注意一定要加1.0,不能加1,加1则分子分母都是int型整数,结果是0;加1.0才会以double类型保存。
Zeuux © 2024
京ICP备05028076号
回复 王单单 2009年09月17日 星期四 21:53
回复 陈劲贤 2009年09月18日 星期五 01:22