【发布时间】:2016-06-11 17:55:41
【问题描述】:
有没有办法在 0 和变量之间生成随机双精度数。该变量是 double 类型,并且每次运行代码时都会发生变化,因此可以选择数字的范围可能会有所不同,但它总是小于 1。
我尝试生成一个数字并将其转换为double,但这没有用。
【问题讨论】:
-
使用
drand48函数。 -
感谢您的帮助
有没有办法在 0 和变量之间生成随机双精度数。该变量是 double 类型,并且每次运行代码时都会发生变化,因此可以选择数字的范围可能会有所不同,但它总是小于 1。
我尝试生成一个数字并将其转换为double,但这没有用。
【问题讨论】:
drand48函数。
使用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';
}
【讨论】: