<分区>
考虑以下代码:
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(不含)之间的随机整数。
它也适用于 double 。
关于java - 如何获得范围内为负数的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976857/