求解答

nnn1234567890 2014-03-14 03:29:00
double WeatherBalloon::temperature() const
{
return -20.0 + (2.0 * std::rand() / (RAND_MAX + 1.0));什么意思,求详细解答
}

double WeatherBalloon::humidity() const
{
return 20.0 + (2.0 * std::rand() / (RAND_MAX + 1.0));。。什么意思
}

double WeatherBalloon::altitude() const
{
return 7000 + (100.0 * std::rand() / (RAND_MAX + 1.0));//什么意思
}
...全文
94 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2014-03-18
  • 打赏
  • 举报
回复
std::rand()返回一个[0,RAND_MAX]之间的随机整数。 RAND_MAX是一个宏,不同的系统中同,可能不同,但最小值是32767。 如果我们希望产生的随机数不在此范围内,那么就需要转化。上面的几个就是将产生的随机数转化为符合使用的随机数。 -20.0 + (2.0 * std::rand() / (RAND_MAX + 1.0)); (RAND_MAX + 1.0) //这是一个常数 ,等于可能产生的随机数最大值 + 1 ,结果为浮点数 2.0 * std::rand() //将产生的随机数*2.0 ,结果为浮点数 (2.0 * std::rand() / (RAND_MAX + 1.0)) // 两个浮点数相除,将得到一个小数,其范围为 : [0~2) 0 <= X < 2 如果不加这个 1.0 那么其取值范围就是 [0,2] -20.0 + (2.0 * std::rand() / (RAND_MAX + 1.0) 这样得到的范围是 [-20.0 , -18) 这个表达式就是返回一个 [-20.0 , -18)  之间的随机小数。 其他两个表达式你同样推理,就能得到其取值范围。
nnn1234567890 2014-03-14
  • 打赏
  • 举报
回复
引用 1 楼 PPower 的回复:
-20.0 + (2.0 * std::rand() / (RAND_MAX + 1.0) std::rand()  //std::这是STL库所用的名字空间名称,rand()函数会返回一个随机整数。 RAND_MAX 是一个宏,产生的随机数的最大值。 (2.0 * std::rand() / (RAND_MAX + 1.0) 这样得到的是一个double浮点数,
前边加一个-20.0 和后边那个+1.0是什么意思
勉励前行 2014-03-14
  • 打赏
  • 举报
回复
-20.0 + (2.0 * std::rand() / (RAND_MAX + 1.0) std::rand()  //std::这是STL库所用的名字空间名称,rand()函数会返回一个随机整数。 RAND_MAX 是一个宏,产生的随机数的最大值。 (2.0 * std::rand() / (RAND_MAX + 1.0) 这样得到的是一个double浮点数,

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧