我真的认为这会起作用,但是当我运行它时,我总是得到一些随机的大小数,这没有任何意义。逻辑是对的,为什么代码不起作用?
do{
value = rnd.nextDouble();
}while(value>min && value<max);
请记住“min”和“max”实际上是执行一些简单算术运算然后返回该值的函数,但为了简单起见,我只是将min和max放在一起,所以我不必发布整个类。
答案 0 :(得分:0)
您可以声明start
和end
个变量(int
或double
),并使用nextDouble()
,如:
value = rnd.nextDouble() * (end - start) + start;
请记住:
public double nextDouble() 返回下一个伪随机数,从此随机数生成器的序列中均匀分布介于0.0和1.0之间的double值。
答案 1 :(得分:0)
nextDouble
method会返回double
包含0.0
和1.0
排除的随机min
值。您可以通过添加max
值来转换范围,并通过将其乘以min
和value = (rnd.nextDouble() * (max - min)) + min;
之间的差异来缩放范围。
{{1}}
答案 2 :(得分:0)
要生成rangeMin
和rangeMax
之间的随机值:
Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();