包容与排他的区别?

我觉得这是一个简单的概念,但我遇到了包容性和排他性问题:特别是关于随机数发生器。

例如,如果我想要一个2-8(包括2和8)的值,那将是包容性的,对吗?

那代码看起来怎么样? 像这样:nextInt(8 – 2)+ 2; ?

例如,如果我想要一个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; 

包容性意味着它包括数字。 独家意味着它没有。 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和limit之间返回,因此.nextInt(7) + 2将给出0(包括)和7(不包括)之间的随机数。 )。 添加+ 2将介于2和8之间(包括两者),因为它将介于(0 + 2)和(6 + 2)之间。