1

可能重复:
C++ | 生成10-20之间的真正随机数
如何生成范围内的随机数(-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 两侧的范围;

4

1 回答 1

2

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

前任:

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

为您实现..

于 2012-11-03T16:09:25.113 回答