在c ++ / cli中生成1到max之间的随机双精度

时间:2016-04-23 23:18:48

标签: c++-cli

如何在c ++ / cli中生成1和定义的最大值之间的随机双倍,我在随机标题中使用random_number_distribution和mersenne twister但是从不在cli中,这将在cli中使用random或system :: random,或者有任何类似的替代品吗?谢谢。

2 个答案:

答案 0 :(得分:0)

这里&#39>

double randDouble(double fMin, double fMax)
{
    double f = (double)rand() / RAND_MAX;
    return fMin + f * (fMax - fMin);
}

答案 1 :(得分:0)

System::Random类及其NextDouble方法就是您想要的。 NextDouble将返回一个双> = 0.0和< 1.0。因此,要返回介于1和最大值之间的值:

double RandOneToMax(double max)
{
    Random^ r = ...;
    return (r->NextDouble() * (max - 1)) + 1;
}