Numpy RNG недетерминированный, даже когда посеян - PullRequest
0 голосов
/ 28 сентября 2018

Я использую numpy.random для симуляции Монте-Карло, где возможны очень малые вероятности принятия / отклонения.Хотя я сею ГСЧ, я не могу воспроизвести ту же последовательность случайных чисел.В документации numpy 1.15.1 говорится:

Гарантия совместимости: фиксированное начальное число и фиксированная серия вызовов методов RandomState с использованием одинаковых параметров всегда будут давать одинаковые результаты вплоть до ошибки округления, кромекогда значения были неверными.Неправильные значения будут исправлены, а версия NumPy, в которой было сделано исправление, будет указана в соответствующей строке документации.Расширение существующих диапазонов параметров и добавление новых параметров разрешено, если прежнее поведение остается неизменным.

Прежде всего, что они подразумевают под неправильными значениями?Во-вторых, как обрабатывается ошибка округления?Разве значения не всегда округляются одинаково?Возможно ли вообще, что мой код не является полностью детерминированным, хотя я предоставляю начальное значение?Я уверен, что начальное значение больше нигде не сбрасывается, потому что я предоставляю свой объект RNG каждой своей функции в качестве аргумента.

Редактировать: Оказывается, что я использую set () в моей симуляции.Я считаю, что именно здесь я теряю детерминизм.

...