Java Random Random in interval [-1000,1000]

3 java random

在java我有:

Random random = new Random();
double randomNum = random.nextDouble();
Run Code Online (Sandbox Code Playgroud)

它创建一个介于0和1之间的随机数.但是我想要一个介于-1000和1000之间的数字,我该如何缩放呢?

谢谢

ami*_*mit 5

2种可能性:

  1. [密度较小]:将结果乘以2000,然后从结果中减去1000.它不会像可能性2那样"密集".
  2. 在范围[-1000,999]中得到一个随机int,并在范围[0,1]中添加一个随机双精度数.

请注意,可能性2确保了更好的随机性和更好的"密度",以2个随机调用为代价[如果这是一个问题可能是扩展的].

  • @ziggystar:双打不是全部真实数字.范围[0,1]中有两个有限数量的双精度数.现在,假设在[0,1]范围内有k个双数.使用选项1,您只能获得范围内的k个数字[-1000,1000],而选项2则可获得2000*k的可能性!因此,它随机性较小 - 有些数字可能不会出现在option1中,但它们可以出现在选项2中.我的答案中的密度表示两个数字之间可能的距离,option1中的最小距离远大于option2中的距离,因此它密度较低. (2认同)