3

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

现在我正在使用这个语句,它只涵盖了我需要的一半。

double i = Math.random();
4

5 回答 5

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;
}
于 2012-09-24T03:30:40.473 回答
1

只需使用:

2 * Math.random() - 1
于 2012-09-24T03:27:08.477 回答
1

生成在一个范围(min,max)内均匀分布的随机数的一般公式是:

min + rand.nextDouble() * (max - min)

在你的情况下,max == -min == N. 只需插入值并简化:

2 * N * rand.nextDouble() - N
于 2012-09-24T03:37:01.187 回答
0

试试这个:

double n = 1.0;
double range = 2 * n;
double value = range * Math.random() - n;

您可以修改该n值以更改生成的最大值/最小值,例如,如果您需要范围内的随机数,[-10, 10)则让n = 10.0;

于 2012-09-24T03:32:41.173 回答
0

使用随机

(0, 32767+32768) then subtract by 32768

或生成之间的数字0 and 65535 then just subtract 32768

于 2012-09-24T03:33:19.857 回答