可以使用负数作为随机数生成的种子吗?

Cur*_*arn 2 python random seed

这不是一个编码问题,但我希望有人在这里的论坛中遇到过这个问题.我正在使用Python来运行一些模拟.我需要使用不同的随机数种子进行多次复制.我有两个问题:

  1. 负数是否可以作为种子?
  2. 我应该在种子中留一些距离吗?

目前我正在使用random.org创建介于-100000和+100000之间的50个数字,我将其用作种子.这个可以吗?

谢谢.

Mat*_*ner 7

引用random.seed([x]):

可选参数x可以是任何可哈希的对象.

正数负数都是可以清除的,还有许多其他对象.

>>> hash(42)
42
>>> hash(-42)
-42
>>> hash("hello")
-1267296259
>>> hash(("hello", "world"))
759311865
Run Code Online (Sandbox Code Playgroud)


Phi*_*ter 5

您的模拟是否可重复是否重要?种子RNG的规范方法是使用当前系统时间,实际上这是随机的默认行为:

random.seed([X])

初始化基本随机数生成器.可选参数x可以是任何可哈希的对象.如果省略x或None,则使用当前系统时间; 当前系统时间也用于在首次导入模块时初始化生成器.

如果重复性很重要,我只会偏离这种行为.如果它重要,那么你的random.org种子是一个合理的解决方案.

我应该在种子中留一些距离吗?

不可以.对于质量好的RNG,种子的选择不会影响输出的质量.一组种子[1,2,3,4,5,6,7,8,9,10]应该产生与10个整数的随机选择相同的随机性质.但即使选择随机均匀分布的种子是合乎需要的,保持一定的距离也会破坏这种分布.