генерируйте случайные двойные числа в C++

То, как генерировать случайные числа между два, удваивается в C++, эти числа должны быть похожими на xxxxx, yyyyy.

74
задан Radi 18 December 2016 в 11:13
поделиться

2 ответа

Вот как

double fRand(double fMin, double fMax)
{
    double f = (double)rand() / RAND_MAX;
    return fMin + f * (fMax - fMin);
}

Не забудьте вызывать srand () с правильным семенем каждый раз при запуске вашей программы.

[Edit] Этот ответ устарел, поскольку в C ++ есть собственная случайная библиотека, не основанная на C (см. Ответ Алессандро Якопсона) Но это все еще относится к C

106
ответ дан 24 November 2019 в 11:50
поделиться

что-то вроде этого:

#include <iostream>
#include <time.h>

using namespace std;

int main()
{
    const long max_rand = 1000000L;
    double x1 = 12.33, x2 = 34.123, x;

    srandom(time(NULL));

    x = x1 + ( x2 - x1) * (random() % max_rand) / max_rand;

    cout << x1 << " <= " << x << " <= " << x2 << endl;

    return 0;
}
0
ответ дан 24 November 2019 в 11:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: