1

特定の範囲内の乱数を生成するために、この関数を作成しました。負の範囲を含めると、より負の数が生成されるように見えることに気付きました。例: -5 から 5

これはランダムではないと思います。このコードに問題はありますか?

int random_number_generator(int lowest, int highest)
{
    srand((unsigned)time(0));
    int random_integer;
    random_integer = lowest+(rand()%highest);
    cout << random_integer << endl;
}
4

3 に答える 3

0

次のコードを使用できます。

int srandInit = 0;
float Random(float min, float max)
{
    if (srandInit == 0) 
    {
        srand ( (unsigned)time(NULL) );
        srandInit = 1;
    }
    return ((max - min) * ((float)rand() / (float)RAND_MAX)) + min;
}

結果からstatic_cast作成するだけですfloatint

于 2013-09-03T11:02:40.917 に答える