我不知道为什么Java的设计师没有设计java.util.Random对象来返回这样的随机数:
rand.nextInt(minValue, maxValue);
我不明白如何将min和max值传递给此函数。我已经看到了这个推荐:
random.nextInt(max + 1 - (min)) + min
但这是什么意思?这是否意味着:
random.nextInt(FULL_RANGE + 1) + START_OF_RANGE
例如,如果我想生成介于-1和1之间的值(包括1和1),我就是这样做的:
int oneOfThreeChoices = rand.nextInt(1 + 1 + 1) - 1;
答案 0 :(得分:3)
API为您提供了足够的工具来完成此任务。如果你想在范围[a,b]上包含两端的随机int,请使用
int n = random.nextInt(b-a+1) + a
假设random
是先前声明为java.util.Random
类型的对象。
答案 1 :(得分:1)
random.nextInt(bound)
返回0到bound
的随机数(不包括)。例如,random.nextInt(10)
返回0到9之间的随机数。
所以,如果你想要从5到15(包括)返回数字,只需说
random.nextInt(11) + 5
为什么java设计师没有为JDK提供更方便的API?我认为,因为这里解释的方式非常简单明了。