Я знаю, что псевдослучайные генераторы должны быть детерминированными, т. Е. Когда используется одно и то же семя, они производят одну и ту же последовательность выходов. На практике это все верно только тогда, когда вы находитесь на одной платформе, то есть на том же оборудовании, ОС и т. Д.Псевдослучайные генераторы и зависимость от платформы
Я знаю, что в некоторых случаях, когда вы запускаете тот же код на разных платформах, вы могут получить разные ответы (как кратко указано здесь: How to generate a repeatable random number sequence?).
В качестве другого примера, эта статья изучает некоторые причины таких различий в контексте некоторых приложений нейро-визуализации: http://journal.frontiersin.org/article/10.3389/fninf.2015.00012/abstract
Мой вопрос заключается в том, есть ли вообще хорошо документированный объяснение этого явления. Любые другие указатели оцениваются.
Другими словами, я обеспокоен тем, при каких обстоятельствах подвергается опасности воспроизводимость псевдослучайных генераторов? И как можно избежать этих ситуаций (и действительно гарантировать кросс-платформенную воспроизводимость)?
«На практике это все верно только тогда, когда вы находитесь на одной платформе, то есть на том же оборудовании, ОС и т. Д.» - Не уверен, что это полностью правильная догадка. Это будет зависеть от вашей общей среды - например, Java предоставит четко определенный PRNG (через spi-интерфейс поставщика), который будет правильно воспроизводиться на разных платформах и т. Д. – BadZen
Итак, я предполагаю, что частичный ответ на вопрос «как эти ситуации могут быть avoided "- это выбор среды dev с четко определенной семантикой PRNG! – BadZen
Спасибо, BadZen. Знаете ли вы, что ваше требование (о семантике Java PRNG четко определено) где-то документировано? – Mahdi