Ответ 1
Вы можете создать свой собственный Random
объект.
myrandom = random.Random(myseed)
Модуль Random
управляет собственным экземпляром Random
, на который не будут влиять изменения, сделанные в myrandom
.
В 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-решение, которое не требует "восстановления" старого семени. Я хотел бы знать, есть ли лучший способ сделать это.
Вы можете создать свой собственный Random
объект.
myrandom = random.Random(myseed)
Модуль Random
управляет собственным экземпляром Random
, на который не будут влиять изменения, сделанные в myrandom
.