为此,我找到了解决方案,但我不明白: 我已经使用了下面的函数来生成给定范围内的随机数,但是下面的函数是什么意思?
static int randomRangeInNumber(int min, int max) {
Random r=new Random();
return r.nextInt((max-min)+1)+min;
}
我没有得到的退货 请帮助我理解其含义 任何帮助将不胜感激
答案 0 :(得分:0)
nextInt(int bound)的文档中说
从该随机数生成器的序列中返回一个伪随机数,其int值在0(含)和指定值(不含)之间均匀分布。
所以您的nextInt
通话是
(max-min)+1
),然后+min
将其缩放到[min..max]范围。return r.nextInt((max-min)+1)+min;
\__________1_________/\_2_/
答案 1 :(得分:0)
nextInt通常不包含最大值,因此加1使其成为最大值 包容性
因此,在您的情况下,我们说max
是10,而min
是5。
nextInt(n)
将为您提供0到n-1之间的随机数。
因此,添加+1
将使您包括n
的值。
nextInt(max-min)
因此会给您一个随机数(在这种情况下),介于0和5-1之间(并由于+1而包含了5)
然后再次添加min
,表示它将为您提供上面的随机数,但是将其加上5,因此结果将是5到10之间的随机数。