【问题标题】:How to generate a random double between 0 and a variable in c++ [duplicate]如何在c ++中生成0和变量之间的随机双精度[重复]
【发布时间】:2016-06-11 17:55:41
【问题描述】:

有没有办法在 0 和变量之间生成随机双精度数。该变量是 double 类型,并且每次运行代码时都会发生变化,因此可以选择数字的范围可能会有所不同,但它总是小于 1。 我尝试生成一个数字并将其转换为double,但这没有用。

【问题讨论】:

  • 使用drand48函数。
  • 感谢您的帮助

标签: c++ random


【解决方案1】:

使用std::uniform_real_distribution

#include <iostream>
#include <random>

template <typename T>
T RandomFromRange(T low, T high){
    std::random_device random_device;
    std::mt19937 engine{random_device()};
    std::uniform_real_distribution<T> dist(low, high);
    return dist(engine);
}


int main(){

  double changing_var;
  std::cout << RandomFromRange<double>(0,changing_var) << '\n';
  std::cout << RandomFromRange<double>(0,changing_var) << '\n';
  std::cout << RandomFromRange<double>(0,changing_var) << '\n';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2016-02-14
    • 2013-08-10
    • 2011-02-11
    • 2016-01-08
    • 1970-01-01
    • 2011-05-02
    相关资源
    最近更新 更多