Подтвердить что ты не робот

Набор случайных семян в python

У меня довольно большая программа, где я использую функции из модуля random в разных файлах. Я хотел бы иметь возможность установить случайное семя один раз, в одном месте, чтобы программа всегда возвращала одни и те же результаты. Может ли это быть достигнуто в python?

4b9b3361

Ответ 1

Основной исполняемый модуль python должен import random и вызвать random.seed(n) - это общий доступ ко всем другим импортам random, если в другом месте reset нет.

Ответ 2

В начале вашего вызова приложения random.seed(x) убедитесь, что x всегда один и тот же. Это гарантирует, что последовательность псевдослучайных чисел будет одинаковой во время каждого запуска приложения.

Ответ 3

Джон Клементс в значительной степени отвечает на мой вопрос. Однако это была не настоящая проблема: Оказывается, причиной моей случайной случайности было numpy.linalg SVD, потому что оно не всегда дает одинаковые результаты для плохо обусловленных матриц!!

Поэтому не забудьте проверить это в своем коде, если у вас есть те же проблемы!

Ответ 4

Вы можете гарантировать это довольно легко, используя свой собственный генератор случайных чисел.

Просто выберите три довольно больших числа (если это не криптографическое приложение) и подключите их к a, b и c: a = ((a * b)% c) Это дает систему обратной связи, которая производит довольно случайные данные. Обратите внимание, что не все простые числа работают одинаково хорошо, но если вы просто выполняете симуляцию, это не имеет значения - все, что вам действительно нужно для большинства симуляций, - это беспорядок чисел с достаточно сложным (псевдослучайным, запоминающимся) это не соответствует каким-либо образом с вашим приложением.

Кнут говорит об этом.