Например, если я создаю экземпляр std::mt19937
с тем же самым семенем и параметрами в GCC и под MSVC, должен ли я получить одну и ту же последовательность случайных чисел? Если это так, я предполагаю, что это свойство будет сохраняться для mersenne_twister_engine вообще, так как mt19937 является только одним с определенными параметрами. Это не верно для rand()
в C. Похоже, что стандартные документы преобразуются с использованием определенного кода, поэтому я подозреваю, что он всегда должен быть одним и тем же, но дьявол находится в деталях...
Стандарт С++ 11 гарантирует идентичные случайные числа для одного и того же семени в реализациях?
Ответ 1
Для новых двигателей с числовыми номерами да, для тех же семян и параметров вы получите одну и ту же последовательность значений на всех платформах. Для rand()
, no. У вас также нет этой гарантии с распределением случайных чисел, даже если они получают одну и ту же последовательность входных значений.