Ответ 1
Да, есть, но вам нужно другое или сказать точно, тот же PRNG на каждой платформе. std::default_random_engine engine
представляет собой реализацию PRNG. Это означает, что вы не можете получить тот же PRNG на каждой платформе. Если у вас нет одного и того же, ваши шансы на получение одной и той же последовательности довольно низки.
Что вам нужно, это что-то вроде std::mt19937
, которое требуется для того же вывода для одного и того же семестра. На самом деле все определенные генераторы в <random>
помимо std::default_random_engine engine
будут выдавать тот же результат при использовании одного и того же семпла.
Другая вещь, которую вам нужно знать, заключается в том, что std::uniform_int_distribution
также является реализацией. Формула, которую она должна использовать, определяется, но способ ее достижения остается до разработчика. Это означает, что вы не можете получить точный результат. Если вам нужна переносимость, вам нужно будет раскрутить свой собственный дистрибутив или получить третью сторону, которая всегда будет одинаковой независимо от платформы.