我覺得這是一個簡單的概念,但我在包容性和排他性方面遇到了問題:特別是關於隨機數生成器。例如,如果我想要一個2-8的值(包括2和8),那麼這是包容的,是正確的嗎?包容性與排他性之間的區別?
該代碼將如何顯示? 類似這樣的: nextInt(8 - 2)+ 2; ?
我覺得這是一個簡單的概念,但我在包容性和排他性方面遇到了問題:特別是關於隨機數生成器。例如,如果我想要一個2-8的值(包括2和8),那麼這是包容的,是正確的嗎?包容性與排他性之間的區別?
該代碼將如何顯示? 類似這樣的: nextInt(8 - 2)+ 2; ?
例如,如果我想要一個值2-8(包括2和8),這是包容的,是正確的?
是。包容性包括; Exclusive排除。
範圍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和限制之間的回報,所以.nextInt(7) + 2
會給一個隨機介於0(含)和7(不含6)之間的數字。加+ 2將在2和8之間(包括兩者),因爲它將介於(0 + 2)和(6 + 2)之間。