gpt4 book ai didi

c++ - 最小值和最大值之间的随机双倍

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:33 25 4
gpt4 key购买 nike

double get_random(double min, double max) {
/* Returns a random double between min and max */

return min * ((double) rand() / (double) RAND_MAX) - max;
}

我的函数是在最小值和最大值之间生成随机 double 值。但是,当我调用 get_random(-1.0, 1.0); 时,我得到的值介于 -2.0 和 -1.0 之间。

知道我做错了什么以及如何解决吗?

最佳答案

公式不应该是

(max - min) * ( (double)rand() / (double)RAND_MAX ) + min
  • (double)rand()/(double)RAND_MAX 返回一个介于 01
  • 之间的随机数
  • (max - min) * ( (double)rand()/(double)RAND_MAX ) 返回一个介于 0max - min< 之间的随机数
  • 整个表达式将返回一个介于 0 + minmin + (max-min) 之间的随机数 - 即 min最大

关于c++ - 最小值和最大值之间的随机双倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com