我正在用Java创建一个神经网络,需要创建一个最初生成随机权重的方法。
我需要创建一个函数,该函数返回介于-1和1之间的随机double值,但不确定执行此操作的逻辑,因此任何帮助都将非常受欢迎。
答案 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}}。