我需要在-N和N之间随机选择一个数字(这是在java中,使用Math.random())。具体来说,在这种情况下,我需要在-1和1之间选择一个随机数。所有结果我发现已经解释了如何在一些正数之间找到一个随机数。
现在我正在使用这个声明,它只涵盖我需要的一半。
double i = Math.random();
答案 0 :(得分:3)
对于-n和n之间的随机数:
/**
* @return a random number, r, in the range -n <= r < n
*/
public static double getRandom(double n) {
return Math.random()*n*2 - n;
}
答案 1 :(得分:1)
只需使用:
2 * Math.random() - 1
答案 2 :(得分:1)
生成在范围(min,max)内均匀分布的随机数的通式为:
min + rand.nextDouble() * (max - min)
在您的情况下,max == -min == N
。只需插入值并简化:
2 * N * rand.nextDouble() - N
答案 3 :(得分:0)
试试这个:
double n = 1.0;
double range = 2 * n;
double value = range * Math.random() - n;
您可以修改n
值以更改生成的最大/最小值,例如,如果您需要[-10, 10)
范围内的随机数,那么请n = 10.0;
答案 4 :(得分:0)
使用随机
(0, 32767+32768) then subtract by 32768
或
生成0 and 65535 then just subtract 32768