1

重複の可能性:
C++ | 10 ~ 20 の真の乱数
を生成する 範囲 (-x,x) 内で乱数を生成する方法

したがって、MTを使用して疑似乱数を生成しています。これらの数値を数値の範囲の値に変更できるようにしたいと考えています。

これらは私が今持っている関数です。最初の 2 つは int で、次の 2 つは 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 に答える