我编写了这段代码,它在-1和1之间生成随机双打。唯一的问题是它只生成一个随机双精度,然后只打印出我想要生成的其他双精度数。例如。如果第一个双精度数为0.51,它只会反复打印0.51而不是生成新的随机双精度数。
以下代码有什么问题?
public static void main(String[] args) {
double start = -1;
double end = 1;
double random = new Random().nextDouble();
for(int i=1; i<10; i++){
double result = start + (random * (end - start));
System.out.println(result);
}
}
提前致谢!
答案 0 :(得分:2)
每次需要新的随机数时,必须生成新的随机(nextDouble())。 尝试:
public static void main(String[] args) {
double start = -1;
double end = 1;
Random random = new Random();
for(int i=1; i<10; i++){
double result = start + (random.nextDouble() * (end - start));
System.out.println(result);
}
}