Вы используете случайное число семян, если и только , если хотите получить воспроизводимые результаты.Это может быть удобно для таких вещей, как генерация карты, когда вы хотите, чтобы карта была рандомизированной, но вы хотите, чтобы она была предсказуемо случайной на основе начального числа.
В большинстве случаев вы этого не хотите, вы хотите на самом делеслучайные числа, и лучший способ сделать это с помощью функций генератора стандартной библиотеки:
#include <random>
std::random_device rd;
std::map<int, int> hist;
std::uniform_int_distribution<int> dist(0, 5);
int random_die_roll = dist(rd);
В этом случае начальное число не требуется и не рекомендуется.«Случайное устройство» - это правильное заполнение PRNG (генератора псевдослучайных чисел) для обеспечения непредсказуемых результатов.
Опять же, НЕ использует srand(time(NULL))
, потому что он очень старый, очень плохойметод для инициализации случайных чисел, и это очень предсказуемо.На современных компьютерах пробиться через миллион возможных начальных чисел, чтобы найти совпадающие выходные данные, тривиально.