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