В моей программе мне нужно запустить N отдельных потоков, каждый с собственным RNG, который используется для выборки большого набора данных. Мне нужно иметь возможность заполнить весь этот процесс одним значением, чтобы я мог воспроизвести результаты.
Достаточно ли просто последовательно увеличивать начальное число для каждого индекса?
В настоящее время я использую numpy
's, RandomState
который использует генератор псевдослучайных чисел Mersenne Twister.
Фрагмент кода ниже:
# If a random number generator seed exists
if self.random_generator_seed:
# Create a new random number generator for this instance based on its
# own index
self.random_generator_seed += instance_index
self.random_number_generator = RandomState(self.random_generator_seed)
По сути, я начинаю с введенного пользователем начального числа (если оно существует) и для каждого экземпляра / потока последовательно добавляю индекс (от 0 до N-1) запущенного экземпляра. Я не знаю, является ли это хорошей практикой или есть лучший способ сделать это.