【发布时间】:2012-01-26 18:56:12
【问题描述】:
我想要一个可以生成伪随机值序列的函数,但该序列在每次运行时都是可重复的。我想要的数据必须在给定范围内合理地随机分布,它不一定是完美的。
我想编写一些代码,基于随机数据运行性能测试。我希望每台机器上的每次测试运行的数据都相同,但出于存储原因,我不想随测试一起发送随机数据(最终可能会达到数兆字节)。
random 模块的库似乎并没有说相同的种子在任何机器上总是会给出相同的序列。
编辑:如果您要建议我播种数据(如上所述),请提供说明该方法有效的文档,并且可以在一系列机器/实现上工作。
编辑:Mac OS X 上的 CPython 2.7.1 和 PyPy 1.7 以及 CPython 2.7.1 和 CPython 2.52=.2 Ubuntu 似乎给出了相同的结果。尽管如此,没有任何文档以黑白方式规定这一点。
有什么想法吗?
【问题讨论】:
-
您是否尝试过多次生成具有给定种子的序列?
-
我只有一台电脑和一个操作系统,所以我无法可靠地测试这个。
-
我认为根本问题是“为了什么?”如果密码 - 这是非常糟糕的主意,不要这样做。你必须写“为了什么”。
-
@skippy:请阅读他的问题。他明确表示,他希望它们用于基于随机数据的性能测试,这是一件非常明智的事情。
-
只是一个简短的评论,让其他人免于我的菜鸟错误:random.seed() 用于使随机可重复,但如果您的输入数据,您只会看到相同的结果也是一样的。这听起来很明显,但一定要检查一下。