2016-04-02 7 views
0

Ich glaube, es ist ein einfaches Konzept, aber ich habe Probleme mit inklusiv und exklusiv: besonders in Bezug auf Zufallszahlengenerator.Unterschied zwischen inklusiv und exklusiv?

Zum Beispiel, wenn ich einen Wert 2-8 (einschließlich 2 und 8) wollte, wäre das inklusive, richtig?

Und wie würde dieser Code aussehen? Etwas wie dieses: nextInt (8 - 2) + 2; ?

Antwort

1

Zum Beispiel, wenn ich einen Wert 2-8 (einschließlich 2 und 8) wollte, wäre das inklusive, richtig?

Ja. Inklusive beinhaltet; Exklusiv schließt aus.

Der Bereich 2-8 einschließlich ist 7 einzigartige Werte (2,3,4,5,6,7,8); und Random.nextInt(int)schließt den angegebenen Wert aus. So wollen Sie etwas wie

Random rand = new Random(); 
int min = 2; 
int max = 8; 
// ... 
int r = rand.nextInt((max - min) + 1) + min; 
2

Inclusive bedeutet, dass es die Nummer enthält. Exklusiv bedeutet, dass es nicht so ist. Die Random.nextInt(limit) ist einschließlich 0 und exklusive der Grenze. Dieser Ansatz ermöglicht es, zB die Größe eines Arrays in einer Zufallszahl:

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] 

Für einen Wert zwischen 2 und 8, Sie wissen, dass die .nextInt(limit) zwischen 0 und Grenze zurück, so wird .nextInt(7) + 2 ein zufälliges geben Nummer zwischen 0 (inklusive) und 7 (exklusiv, das ist 6). Hinzufügen von + 2 wird zwischen 2 und 8 (einschließlich beider) sein, da es zwischen (0 + 2) und (6 + 2) liegt.