【发布时间】:2020-02-26 18:51:19
【问题描述】:
浮点值可以作为参数传递给 random.seed() 吗?这会带来不可预见的问题吗?
换句话说。是……
random.seed(0.99999999)
<use a few thousand random numbers>
random.seed(1)
<use a few thousand random numbers>
....在功能上等同于....
random.seed(0)
<use a few thousand random numbers>
random.seed(1)
<use a few thousand random numbers>
快速测试表明,两组代码都运行良好,并且从表面上看,输出似乎是独立且确定的。
我很想知道在种子集之间的独立性很重要的情况下,使用这种播种方法是否完全安全。获得确定性结果也很重要。我检查了一些文档:Python 2.7 documentation 和Python 3.8 documentation 并进行了一些谷歌搜索,只发现对用作种子的整数(或其他转换为整数的数据类型)的引用。我看不到对浮动的任何引用,这让我想知道它们是否“安全”,因为它们以可预测的方式工作,没有令人讨厌的意外。
我目前正在使用 Python 2.7,但我也对更现代版本的答案感兴趣。
【问题讨论】:
-
它没有记录,所以你不应该依赖它。它可能只是像提到的其他类型一样将其转换为 int。
-
Gz 上 500k Barmar!
标签: python python-2.7 random