9

随机的Scaladoc页面(http://www.scala-lang.org/api/current/scala/util/Random.html)指定nextDouble “从这个随机返回0.0到1.0之间的下一个伪随机,均匀分布的双精度值数字生成器的序列。”

很明显,它忽略了“包容性”。例如,值 0.0 和 1.0 可能吗?如果是这样,是哪一个(或两者)?例如,如果我除以这个数字,我真的想确保 0 不是返回值。在其他情况下,我可能不想要 1.0。很明显,这很难通过测试得到,因为在 0.0 和 1.0 之间大约有10^15 个值。

它是哪一个?请注意,由于不是每个人都记得“(”和“[”中的哪一个表示“包含”,所以请说“包含 X”。

4

1 回答 1

15

这是因为它scala.util.Random是一个非常薄的包装器java.util.Random参见源代码),它有足够详细的文档:

nextDouble 的一般约定是伪随机生成并返回一个从 0.0d(包括)到 1.0d(包括)范围内(大约)均匀选择的双精度值。

于 2012-10-09T16:31:42.900 回答