не получил ответа.
1. Как правильно использовать seed_seq для инициализации mt19937_64?
У меня есть 4 числа в std::array, которые являются источником энтропии.
На данный момент делаю таким образом
std::array<std::uint64_t, 4> arr {1, 2, 3, 4};
std::seed_seq seeds (arr.begin(), arr.end());
std::mt19937_64 gen(seeds);
Но надежно ли такое решение? В некоторых примерах набор seed состоит из 312 (mt19937::state_size) элементов.
2. Также иногда встречается метод generate класса seed_seq, который заполняет контейнер. Но я немного не понимаю его смысл. Нужно инициализировать seed_seq и с помощью generate заполнить контейнер из 312 элементов, инициализировать новый seed_seq этим контейнером и, наконец, передать его mt19937_64? Звучит ужасно и выглядит как костыли.
А занафига? Для того чтобы генератор всегда одинаковые последовательности выдавал?
Обсуждают сегодня