В Python 2 documentation of the random.seed()
функции я нашел предупреждение:Воспроизводимость случайных чисел (Python 2/случайный)
Если hashable объект задан, детерминированные результаты только уверены когда PYTHONHASHSEED отключен.
Из https://docs.python.org/2/using/cmdline.html#envvar-PYTHONHASHSEED я делаю вывод, что -R
переключатель интерпретатора может иметь подобный эффект, как PYTHONHASHSEED
.
Я проверил эмпирически, что случайные числа, засеянные небольшими целыми числами, кажутся воспроизводимыми. Так делают хэши маленьких целых чисел.
Однако int
является хеджируемым. Является ли это явным образом в любом доверенном источнике, что безопасно использовать его в качестве семени для воспроизводимой последовательности случайных чисел?
В отличие от Reproducibility of python pseudo-random numbers across systems and versions?, воспроизводимости в пределах одной системы и интерпретатора достаточно.
Я считаю, что недостаток документации; он должен сказать, что ints и longs не хэшируются. В любом случае реализация Python 2 вряд ли изменится на данный момент, а в [документации Python 3] (https://docs.python.org/3/library/random.html#random.seed) упоминается, что ints (Python 2) используются напрямую. – user2357112