【发布时间】:2012-10-09 16:27:36
【问题描述】:
Random (http://www.scala-lang.org/api/current/scala/util/Random.html) 的 Scaladoc 页面指定 nextDouble “从该随机数生成器的序列中返回 0.0 到 1.0 之间的下一个伪随机、均匀分布的双精度值。”
很明显,它忽略了“包容性”。例如,值 0.0 和 1.0 可能吗?如果是这样,是哪一个(或两者)?例如,如果我除以这个数字,我真的想确保 0 不是返回值。在其他情况下,我可能不想要 1.0。很明显,这很难通过测试得到,因为大约有 10^15 个值介于 0.0 和 1.0 之间。
它是什么?请注意,由于不是每个人都记得“(”和“[”中的哪一个表示“包含”,所以请直接说“包含 X”。
【问题讨论】:
-
旁注:1.0 是独占的,但由于浮点数的内部表示,当您对其进行一些算术运算时,可能会发生接近 1.0 的值表示为 1.0...(有一个Java 谜题,但我现在找不到)。