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

Настройте случайное семя временно, например "new Random()"

В Python, что является лучшим способом генерации некоторого случайного числа с использованием определенного семени, но без повторного согласования глобального состояния? В Java вы можете просто написать:

Random r = new Random(seed);
r.nextDouble();

и стандартный Math.random() не будет затронут. В Python лучшим решением, которое я вижу, является:

old_state = random.getstate()
random.seed(seed)
random.random()
random.setstate(old_state)

Является ли этот идиоматический Python? Это кажется намного менее чистым, чем Java-решение, которое не требует "восстановления" старого семени. Я хотел бы знать, есть ли лучший способ сделать это.

4b9b3361

Ответ 1

Вы можете создать свой собственный Random объект.

myrandom = random.Random(myseed)

Модуль Random управляет собственным экземпляром Random, на который не будут влиять изменения, сделанные в myrandom.