1

我必须编写一个轻量级算法来生成伪随机无限数系列,并且强烈依赖于初始种子。

在python中它应该像

seed = 3345                 // Common number
generator = numgen(seed)
while True:
    generator.getNext()     // With the same seed it produce same numbers

正如我所写,即使在不同的机器和不同的时间,使用相同的种子它也必须产生相同的数字系列。是否有标准模式或者我必须实现自己的算法?

4

1 回答 1

9

根据给定的要求,您可以选择常量系列

generator = itertools.repeat(seed)

这是

  • 轻的
  • 不一定是随机的
  • 强烈依赖于初始种子
  • 即使在不同的机器上也能生产相同的系列

编辑:为了使这成为一个实际的答案,这里是如何使用 Python 的 Mersenne Twister 生成一系列随机数:

seed = 3345
maximum = 1000000
generator = random.Random(seed)
while True:
    print generator.random(maximum)

创建您自己的random.Random实例可确保从其他地方对随机数生成器的调用不会干扰您的随机状态。

于 2011-05-03T14:59:49.410 回答