如何在0和c ++中的变量之间生成一个随机的double

时间:2016-02-28 19:02:14

标签: c++ random

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

1 个答案:

答案 0 :(得分: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';
}