2016-04-02 20 views
0

シンプルなコンセプトだと思いますが、特に乱数ジェネレータに関する包括的で排他的な問題があります。包括的と排他的な違いはありますか?

例えば、値2〜8(2と8を含む)が必要な場合、それは包括的なものでしょうか?

そのコードはどのように見えますか? このようなもの: nextInt(8 - 2)+ 2; ?

答えて

1

たとえば、値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; 
2

包括的には番号が含まれています。排他的な意味ではありません。 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を加えることは、(0 + 2)と(6 + 2)の間にあるので、2と8の間(両方を含む)になります。

関連する問題