Random 如何获得随机数的可变性

Random 如何获得随机数的可变性,random,Random,我想得到不总是相同的随机数,在我的代码中,现在我要么得到全部-0.5,要么得到全部0.5,这正是我不想要的。我想要的是一些真正的可变性,比如可能是-0.1,可能是-0.33,可能是-0.0666-->你得到了图片-实际的随机性 我一直在到处寻找这个信息——怎么可能在stackoverflow上不容易找到这个信息呢——我希望这个问题能够解决这个问题 如果有人能为我指路——如果他们能为随机性的高斯分布指路——那就太棒了 我的代码如下所示: //MAKE SURE YOU HAVE ONE F

我想得到不总是相同的随机数,在我的代码中,现在我要么得到全部
-0.5
,要么得到全部
0.5
,这正是我不想要的。我想要的是一些真正的可变性,比如可能是
-0.1
,可能是
-0.33
,可能是
-0.0666
-->你得到了图片-实际的随机性

我一直在到处寻找这个信息——怎么可能在stackoverflow上不容易找到这个信息呢——我希望这个问题能够解决这个问题

如果有人能为我指路——如果他们能为随机性的高斯分布指路——那就太棒了

我的代码如下所示:

    //MAKE SURE YOU HAVE ONE FOR BIAS
    for (int j = 0; j < weights_one.length ; j++) 
    {
        weights_one[j] = randoDub(0.5, 0.5);
    }


    for (int j = 0; j < weights_one.length ; j++) 
    {
        System.out.println("weights_one[" + j + "]: " + weights_one[j]);
    }





    //now that we have inputs --> we must initialize the weight vectors

    //then we do our calculation // our rule --> and then we are finished. 


}



public static double randoDub(double min, double max) throws InterruptedException 
{

    Random rand = new Random( System.currentTimeMillis() );

    double randomValue = min + (max - min) * rand.nextDouble();

    //DELAY FOR SEED CHANGE
    TimeUnit.SECONDS.sleep(5);

    return randomValue;
}
//确保您有一个可供选择的
对于(int j=0;j我们必须初始化权重向量
//然后我们进行计算//我们的规则-->然后我们就完成了。
}
publicstaticdoublerandodub(doublemin,doublemax)抛出InterruptedException
{
Random rand=新的Random(System.currentTimeMillis());
双随机值=最小值+(最大值-最小值)*rand.nextDouble();
//推迟换种
时间单位。秒。睡眠(5);
返回随机值;
}

您正在调用
randoDub
,参数与
min
max
相同。您可能需要
randoDub(-0.5,0.5)
而不是
randoDub(0.5,0.5)

作为建议,为了避免在函数内部休眠,请在
randoDub
之外创建一个
Random
对象,并将其传入