这不是一个编码问题,但我希望有人在这里的论坛中遇到过这个问题。我正在使用Python来运行一些模拟。我需要使用不同的随机数种子运行许多重复。我有两个问题:
目前我正在使用random.org创建介于-100000和+100000之间的50个数字,我将其用作种子。这没关系吗?
感谢。
答案 0 :(得分:7)
可选参数x可以是任何可哈希的对象。
正面的和负数都是可以清除的,还有许多其他对象。
>>> hash(42)
42
>>> hash(-42)
-42
>>> hash("hello")
-1267296259
>>> hash(("hello", "world"))
759311865
答案 1 :(得分:5)
您的模拟是否可重复是否重要?种子RNG的规范方法是使用当前系统时间,实际上这是random's default behaviour:
random.seed([X])
初始化基本随机数生成器。可选参数x可以 任何可清洗的物体。如果省略x 或无,使用当前系统时间; 当前系统时间也用于 初始化生成器时 模块首先导入。
如果重复性很重要,我只会偏离这种行为。如果 重要,那么你的random.org种子是一个合理的解决方案。
我应该在种子中保持一定距离吗?
没有。对于高质量的RNG,种子的选择不会影响输出的质量。一组种子[1,2,3,4,5,6,7,8,9,10]应该产生与10个整数的随机选择相同的随机性质。但即使选择了随机均匀分布的种子,保持一定的距离也会破坏该分布。