【发布时间】:2012-05-16 07:52:13
【问题描述】:
在 Java 中,我有一个随机生成器,它生成从 -2^63 到 2^63 的随机数,这不是 java.util.Random。
我需要在 (0,1) 中生成随机双精度,这是我目前所做的:
return (seed/(double)(9223372036854775807L))/2+0.5;//seed is a random long
这是对的吗?有没有数值问题(下溢?)?
可以更好/更快吗?
谢谢。
【问题讨论】:
-
你可以去掉
/2并将其折叠到seed/xxx部分 -
不,那太长了。
-
我怎么会这么蠢?谢谢。