Как работает python random.Random.seed?

Я привык набирать random.randrange . Я сделаю from random import Random , чтобы определить ошибку с этого момента.

Для игры с процедурной генерацией (нет, это не клон Minecraft: p) я хотел бы сохранить несколько отдельных генераторов псевдослучайных чисел:

  • один для генерации мира (ландшафт, квесты и т. Д.) ),
  • один для случайных событий, которые могут произойти в мире (например, урон во время боя).

Причина в том, что я хочу иметь возможность воспроизвести первое, поэтому я не хочу, чтобы второе мешало.

Я думал random.Random был создан для этого.Однако кое-что меня озадачивает:

import random
rnd = random.Random()
rnd.seed(0)
print [random.randrange(5) for i in range(10)]
rnd.seed(0)
print [random.randrange(5) for i in range(10)]

производит две разные последовательности. Когда я выполняю rnd = random , все работает, как ожидалось, но мне нужно несколько генераторов.

Что мне не хватает?

9
задан Johan Lundberg 25 January 2012 в 21:30
поделиться