Generieren von Zufallszahlen in einem Bereich in Java

1. Übersicht

In diesem Tutorial werden verschiedene Möglichkeiten zum Generieren von Zufallszahlen innerhalb eines Bereichs untersucht.

2. Generieren von Zufallszahlen in einem Bereich

2.1. Math.random

Das Math.random gibt einen zufälligen Doppelwert an , der größer oder gleich 0,0 und kleiner als 1,0 ist.

Verwenden wir die Math.random- Methode, um eine Zufallszahl in einem bestimmten Bereich zu generieren:

public int getRandomNumber(int min, int max) { return (int) ((Math.random() * (max - min)) + min); }

Warum funktioniert das? Schauen wir uns an, was passiert, wenn Math.random 0.0 zurückgibt. Dies ist die niedrigstmögliche Ausgabe:

0.0 * (max - min) + min => min

Die niedrigste Zahl, die wir bekommen können, ist min.

Wenn Math.random 1.0 zurückgibt, ist es die höchstmögliche Ausgabe, dann erhalten wir:

1.0 * (max - min) + min => max - min + min => max

Die höchste Zahl, die wir bekommen können, ist also max.

Lassen Sie uns dasselbe Muster im nächsten Abschnitt mit Random # nextInt wiederholen .

2.2. java.util.Random.nextInt

Eine Instanz von java.util.Random kann ebenfalls verwendet werden, um dasselbe zu tun.

Verwenden wir die Methode java.util.Random.nextInt , um eine Zufallszahl zu erhalten:

public int getRandomNumberUsingNextInt(int min, int max) { Random random = new Random(); return random.nextInt(max - min) + min; }

Der Parameter min (der Ursprung) ist inklusive, während der Parameter max , die Grenze, exklusiv ist

2.3. java.util.Random.ints

Die Methode java.util.Random.ints gibt einen IntStream mit zufälligen Ganzzahlen zurück.

Wir können also die Methode java.util.Random.ints verwenden und eine Zufallszahl zurückgeben:

public int getRandomNumberUsingInts(int min, int max) { Random random = new Random(); return random.ints(min, max) .findFirst() .getAsInt(); }

Auch hier ist der angegebene Ursprung min inklusive und max exklusiv.

3. Fazit

In diesem Artikel haben wir alternative Möglichkeiten zum Generieren von Zufallszahlen innerhalb eines Bereichs gesehen.

Code-Schnipsel finden Sie wie immer auf GitHub.