将伪随机数修改为2个值之间;

时间:2012-11-03 16:01:20

标签: c++ random

  

可能重复:
  C++ | Generating a truly random number between 10-20
  How to generate random number within range (-x,x)

所以我使用MT来生成我的伪随机数,我希望能够将这些数字修改为一系列数字中的值。

这些是我现在拥有的函数,前两个是int,后两个是float,但它们似乎不正常。

static inline int randomi(int min, int max)
{
    return Random() % (max-min)+min;
}

static inline unsigned long randomi(int max)
{
    return Random() % max;
}

static inline float randomf(float min, float max)
{
    return (Random() / ULONG_MAX) * (max-min)+min;
}

static inline float randomf(float max)
{
    return (Random() / ULONG_MAX) * max;
}

我怎样才能使这些工作成为可以返回范围,包括0范围内的负范围或范围之间的任何位置;

1 个答案:

答案 0 :(得分:2)

当您需要一个负数作为限制时,只需将整个选项向下移动......

前:

* you need a random between -10 and +10:
* generate a random from 0 to 20 the do -10.

让你实施..