Что Правильный Путь состоит в том, чтобы использовать рэнд () Функция в C++?

Если выпадающий выбор только для чтения начиная с рождения и не должен изменяться вообще, возможно, необходимо ли использовать другое управление вместо этого? Как простое <div> (плюс скрытое поле формы) или <input type="text">?

Добавленный: , Если выпадающее не только для чтения все время и JavaScript используется для позволения/запрещения его, то это - все еще решение - просто изменяют DOM на лету.

7
задан jww 18 July 2018 в 06:03
поделиться

5 ответов

Вариант 2 несложный, вот вам:

srand(time(NULL));

вам нужно включить stdlib.h для srand () и time.h для time () .

28
ответ дан 6 December 2019 в 04:54
поделиться

srand () должен быть используется один раз:

int randint()
{
    int random = rand();
    return random;
}

int main()
{
    // To get a unique sequence the random number generator should only be
    // seeded once during the life of the application.
    // As long as you don't try and start the application mulitple times a second
    // you can use time() to get a ever changing seed point that only repeats every
    // 60 or so years (assuming 32 bit clock).
    srand(time(NULL));
    // Comment the above line out if you need to debug with deterministic behavior.

    char input = 0;
    cout << "Press any character and enter to generate a random number." << endl;

    while (cin >> input)
    {
        cout << randint() << endl;
    }
    keep_window_open();
}
8
ответ дан 6 December 2019 в 04:54
поделиться

Обычно генератор случайных чисел заполняется текущим временем. Попробуйте:

srand (time (NULL));

6
ответ дан 6 December 2019 в 04:54
поделиться

Проблема в том, что если вы не засеваете генератор, он засевает сам себя 0 (как если бы был вызван srand (0) ) . ГПСЧ предназначены для генерации одной и той же последовательности при одинаковом заполнении (из-за того, что PNRG на самом деле не случайны, они являются детерминированными алгоритмами и, возможно, немного потому, что это очень полезно для тестирования).

Когда вы пытаетесь заполните его случайным числом с помощью

srand(rand());

, которое вы в действительности делаете:

srand(0);
x = rand();   // x will always be the same.
srand(x);

Как FigBug упомянул , обычно используется время для заполнения генератора.

4
ответ дан 6 December 2019 в 04:54
поделиться

Я думаю, что цель этих статей состоит в том, чтобы попытаться реализовать алгоритм, который находится в rand (), а не как эффективно его засеять.

производит (псевдослучайные числа) нетривиальны, и стоит изучить различные методы их генерации. Я не думаю, что авторы имели в виду простое использование rand ().

0
ответ дан 6 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

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