シンプルなコンセプトだと思いますが、特に乱数ジェネレータに関する包括的で排他的な問題があります。包括的と排他的な違いはありますか?
例えば、値2〜8(2と8を含む)が必要な場合、それは包括的なものでしょうか?
そのコードはどのように見えますか? このようなもの: nextInt(8 - 2)+ 2; ?
シンプルなコンセプトだと思いますが、特に乱数ジェネレータに関する包括的で排他的な問題があります。包括的と排他的な違いはありますか?
例えば、値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とリミットの間で返すことを知っているので、.nextInt(7) + 2
はランダムになります0〜7(排他的、6)の数字です。 +2を加えることは、(0 + 2)と(6 + 2)の間にあるので、2と8の間(両方を含む)になります。