随机(http://www.scala-lang.org/api/current/scala/util/Random.html)的Scaladoc页面指定 nextDouble “返回下一个伪随机数,从此随机数返回0.0到1.0之间的均匀分布的double值发电机的顺序。“
相当明显,它没有“包含”。例如,值0.0和1.0可能吗?如果是这样,哪一个(或两个)?例如,如果我除以这个数字,我真的想确保0不是返回值。在其他情况下,我可能不想要1.0。很明显,这很难通过测试,因为 10 ^ 15 值介于0.0和1.0之间。
这是什么?请注意,因为不是每个人都能记住“(”和“[”表示“包含”中的哪一个,请说“包含X”。
答案 0 :(得分:14)
这是因为scala.util.Random
是java.util.Random
(see the source)周围非常薄的包装,记录为in sufficient detail:
nextDouble的一般契约是伪随机地从0.0d(包含)到1.0d(独占)范围内均匀选择的一个双精度值生成并返回。