我觉得这是一个简单的概念,但我遇到了包容性和排他性问题:特别是关于随机数生成器。
例如,如果我想要一个2-8(包括2和8)的值,那将是包容性的,对吗?
该代码看起来如何? 像这样的东西: nextInt(8 - 2)+ 2; ?
答案 0 :(得分:4)
包含意味着它包括号码。独家意味着它没有。 Random.nextInt(limit)
包含0,不包括限制。该方法允许使用例如随机数中的阵列大小:
int[] arr = new int[6]; //size will be 6
Random rnd = new Random();
int i = arr[rnd.nextInt(arr.length)); //will return between [0] and [5]
对于2到8之间的值,您知道.nextInt(limit)
将在0和限制之间返回,因此.nextInt(7) + 2
将给出0(包括)和7(不包括)之间的随机数。 6)。添加+ 2将介于2和8之间(包括两者),因为它将介于(0 + 2)和(6 + 2)之间。
答案 1 :(得分:3)
例如,如果我想要一个2-8(包括2和8)的值,那将是包容性的,对吗?
是即可。包容性包括;独家排除。
范围2-8
包含7个唯一值(2,3,4,5,6,7,8);并且Random.nextInt(int)
排除 指定值。所以你想要像
Random rand = new Random();
int min = 2;
int max = 8;
// ...
int r = rand.nextInt((max - min) + 1) + min;