在一系列值之间生成随机双精度-Java

在一系列值之间生成随机双精度-Java,java,random,numbers,double,Java,Random,Numbers,Double,我已经写了这段代码,它可以生成-1到1之间的随机双精度。唯一的问题是,它只生成一个随机双精度,然后打印出我想要生成的其他双精度。例如,如果第一个双精度是0.51,它只会反复打印0.51,而不是生成新的随机双精度 以下代码有什么问题 public static void main(String[] args) { double start = -1; double end = 1; double random = new Random().nextDouble();

我已经写了这段代码,它可以生成-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);
    }
}
publicstaticvoidmain(字符串[]args){
双启动=-1;
双端=1;
双随机=新随机().nextDouble();

对于(int i=1;i您必须在每次需要新随机数时生成新随机数(nextDouble())。 尝试:

publicstaticvoidmain(字符串[]args){
双启动=-1;
双端=1;
随机=新随机();

对于(int i=1;我是在循环中生成随机数的吗?不,你不是。嗨,谢谢你!我把它改成现在的nextDouble,但现在它说我不能在原语类型double上调用nextDouble。我在网上看了一下,它说nextDouble只能在random和scanner上使用,这就是我正在做的。你知道原因吗再次感谢:)@user3146858,看看我的代码-我正在执行nextDouble()在随机对象上,而不是在双原语上。随机是生成伪随机数据的对象。在这个类中有很多方法来生成int、双倍等。考虑修改只是记住它是伪随机的。有一些方法可以生成一些特定的集合,例如“代码> NEXTINT < /代码>将返回<代码> 1代码/代码>十次I。n一行等。在一行中生成10次1并不是表示该序列是伪随机的。该序列在确定性上可重复的事实是。
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);
    }
}