获得-1到1之间的随机double值

时间:2012-02-21 21:47:12

标签: java random

我正在用Java创建一个神经网络,需要创建一个最初生成随机权重的方法。

我需要创建一个函数,该函数返回介于-1和1之间的随机double值,但不确定执行此操作的逻辑,因此任何帮助都将非常受欢迎。

2 个答案:

答案 0 :(得分:10)

您可以使用Random类的nextDouble()方法。

Random rng = new Random();
// to get a double between -1 and 1
return rng.nextDouble() * 2 - 1; // rng.nextDouble() is between 0 and 1

答案 1 :(得分:7)

Math.random()将在0和1之间给出一个随机的双倍。您可以将该结果乘以2并将-1减去-1,即-1和1之间的随机双精度。

或者,您可以对来自java.util.Random的{​​{3}}方法的调用应用相同的转换,但这需要Random的显式实例,而这是在Math.random()的幕后完成的。 1}}。