我需要在 -N 和 N 之间随机选择一个数字(这是在 java 中,使用 Math.random())。具体来说,在当前情况下,我需要在 -1 和 1 之间选择一个随机数。所有结果我ve found 解释了如何在一些正数之间找到一个随机数。
现在我正在使用这个语句,它只涵盖了我需要的一半。
double i = Math.random();
我需要在 -N 和 N 之间随机选择一个数字(这是在 java 中,使用 Math.random())。具体来说,在当前情况下,我需要在 -1 和 1 之间选择一个随机数。所有结果我ve found 解释了如何在一些正数之间找到一个随机数。
现在我正在使用这个语句,它只涵盖了我需要的一半。
double i = Math.random();
对于 -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;
}
只需使用:
2 * Math.random() - 1
生成在一个范围(min,max)内均匀分布的随机数的一般公式是:
min + rand.nextDouble() * (max - min)
在你的情况下,max == -min == N
. 只需插入值并简化:
2 * N * rand.nextDouble() - N
试试这个:
double n = 1.0;
double range = 2 * n;
double value = range * Math.random() - n;
您可以修改该n
值以更改生成的最大值/最小值,例如,如果您需要范围内的随机数,[-10, 10)
则让n = 10.0;
使用随机
(0, 32767+32768) then subtract by 32768
或生成之间的数字0 and 65535 then just subtract 32768