如何获得范围内为负数的随机数?


问题内容

考虑以下代码:

int rand = new Random().nextInt((30 - 20) + 1) + 20

它将返回30到20之间的随机数。但是,我需要它的范围包括负数。 我如何在这一代中包括负数?
我曾尝试使用会是负数的数学,但这导致了错误。简单地减去或加上负数将不会产生所需的值。

编辑: 对不起,我只有半醒。正确的代码是int rand = new Random().nextInt((30 - 20) + 1) + 20;


问题答案:

要使用min和获取设置范围内的随机数max

int number = random.nextInt(max - min) + min;

也适用于负数

所以:

random.nextInt(30 + 10) - 10;
// max = 30; min = -10;

会产生介于-10和30之间的随机整数。

也可以加倍