是否有可能在Java中生成随机负数范围?

时间:2015-09-16 21:08:00

标签: java random

我在这里看到了很多关于在JAVA(especially this one)中生成具有特定范围的随机数的帖子。但是,我还没有找到一个描述如何在负MAX和负MIN之间生成随机数的方法。这在Java中是否可行?

例如,如果我想生成介于(-20)和(-10)之间的随机数。使用类似下面的内容只会导致一个JAVA异常,它会尖叫n必须是正面的:

int magicNumber=(random.nextInt(-20)-10);

3 个答案:

答案 0 :(得分:9)

只需生成10到20之间的随机数,然后否定它。

答案 1 :(得分:2)

另一种选择是生成一个介于0和10之间的随机数,然后减去20,如果这对你来说更像是一种解决办法。

答案 2 :(得分:2)

我不完全确定你想要什么,但ThreadLocalRandom有一个接受范围的方法,也可能有负值:

ThreadLocalRandom.current().nextInt(-20, -10 + 1)

虽然否定正随机的结果没有实际的区别。