生成随机双数 [英] Generate Random Double Number

查看:267
本文介绍了生成随机双数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何生成介于0 - 1.5之间的随机双数?

How to generate a random double number between 0 - 1.5?

推荐答案

在C ++ 11中,您可以这样写:

In C++11 you can write this:
#include <random>
#include <ctime>

double generate(double min, double max)
{
    using namespace std;

    static default_random_engine generator(unsigned(time(nullptr)));
    uniform_real_distribution<double> distribution(min, max);

    return distribution(generator);
}


...

generate(0, 1.5);


参见 rand_s

http://msdn.microsoft.com/en-us/library/sxtz2fa8(v = vs.110).aspx [ ^ ]

注意生成的示例一个范围内的双重随机数。
See rand_s:
http://msdn.microsoft.com/en-us/library/sxtz2fa8(v=vs.110).aspx[^]
Note the example which has generation of double random numbers in a range.


您好,

您可以使用此代码:

Hi,
you can use this code:
template <typename T>
T RandomGenerator<T>::generate(T lowerLimit, T upperLimit)
{
    static bool initialized = initialize();
    return double(rand()) * (upperLimit - lowerLimit) / RAND_MAX + lowerLimit;
}

template <typename T>
bool RandomGenerator<T>::initialize()
{
    srand(time(NULL));
}

double dVal = RandomGenerator<double>::generate(0, 1.5); //Generate doubles between (and including) 0 and 1.5.

T


这篇关于生成随机双数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆