如何获得范围内负数的随机数?
请考虑以下代码:
int rand = new Random().nextInt((30 - 20) + 1) + 20
它将返回一个介于 30 和 20 之间的随机数。但是,我需要它的范围包括负数。如何在生成中包含负数?
我尝试过使用否定的数学,但这导致了一个错误。简单地减去或添加负数不会产生所需的值。
对不起,我只是半醒。正确的代码是 。int rand = new Random().nextInt((30 - 20) + 1) + 20;
请考虑以下代码:
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 之间的随机整数(不包括)。
它也适用于双打。
您可以使用 Random.nextBoolean() 来确定它是随机正整数还是负整数。
int MAX = 30;
Random random = new Random(); // Optionally, you can specify a seed, e.g. timestamp.
int rand = random.nextInt(MAX) * (random .nextBoolean() ? -1 : 1);