【发布时间】:2011-05-03 14:56:50
【问题描述】:
我必须编写一个轻量级算法来生成伪随机无限数序列,并强烈依赖于初始种子。
在python中应该是这样的
seed = 3345 // Common number
generator = numgen(seed)
while True:
generator.getNext() // With the same seed it produce same numbers
正如我所写,即使在不同的机器和不同的时间,使用相同的种子它也必须产生相同的数字系列。是否有一个标准模式或者我必须实现自己的算法?
【问题讨论】:
-
还有要求吗?否则,我建议
itertools.count... -
如果你的无限序列不必是随机的,为什么不使用像 +1 这样简单的愚蠢的东西呢? (如果种子是 5,那么系列是 5、6、7,...) - 或任何其他简单的算术函数?
-
一般
def numgen(x): yield x是无限的,非随机的,强烈依赖于种子,并且总是以相同的方式工作。另外,将next与生成器一起使用(没有getNext) -
@Elad:我声称找到了最愚蠢的一个:)
-
@dancek:这只会产生一次种子然后提高
StopIteration。
标签: python algorithm numbers generator series