java Math.random()从-N到N.

时间:2012-09-24 03:25:47

标签: java

我需要在-N和N之间随机选择一个数字(这是在java中,使用Math.random())。具体来说,在这种情况下,我需要在-1和1之间选择一个随机数。所有结果我发现已经解释了如何在一些正数之间找到一个随机数。

现在我正在使用这个声明,它只涵盖我需要的一半。

double i = Math.random();

5 个答案:

答案 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

之间的数字