Zufallszahlen in einem Bereich generieren

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Java bietet mehrere eingebautes Methoden, um Zufallszahlen in seinen Math- und Random-Klassen zu generieren. Generieren von Zufallszahlen in einem bestimmten Bereich kann jedoch herausfordernd sein. In diesem Lab werden Sie verschiedene Methoden lernen, um Zufallszahlen in einem Bereich zu generieren, die folgende einschließen:


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/output("Output") java/BasicSyntaxGroup -.-> java/math("Math") java/ProgrammingTechniquesGroup -.-> java/method_overloading("Method Overloading") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/FileandIOManagementGroup -.-> java/stream("Stream") java/SystemandDataProcessingGroup -.-> java/math_methods("Math Methods") subgraph Lab Skills java/output -.-> lab-117409{{"Zufallszahlen in einem Bereich generieren"}} java/math -.-> lab-117409{{"Zufallszahlen in einem Bereich generieren"}} java/method_overloading -.-> lab-117409{{"Zufallszahlen in einem Bereich generieren"}} java/classes_objects -.-> lab-117409{{"Zufallszahlen in einem Bereich generieren"}} java/stream -.-> lab-117409{{"Zufallszahlen in einem Bereich generieren"}} java/math_methods -.-> lab-117409{{"Zufallszahlen in einem Bereich generieren"}} end

Zufallszahlengenerator mit der Math-Klasse

Wir können die Math.random()-Methode verwenden, um einen Float-Wert zwischen 0 und 1 zu generieren, der geeignet ist, um Zufallszahlen zu erzeugen. Dennoch ist es herausfordernd, Float-Werte in einem bestimmten Bereich zu generieren.

In dieser Methode werden wir eine Zufallszahl zwischen min und max (inklusive min und exklusive max) mithilfe der Formel der Math.random()-Methode erzeugen.

Hier ist das Codesample:

public static int randomNumberGenerator(int min, int max) {
    double r = Math.random();
    int randomNum = (int) (r * (max - min)) + min;
    return randomNum;
}

Um diese Methode zu verwenden, verwenden Sie die randomNumberGenerator()-Methode und übergeben Sie die minimalen und maximalen Bereichs-Integer-Argumente; die Methode wird eine zufällige Ganzzahl im Bereich zurückgeben.

Hier ist der Code, der die randomNumberGenerator() verwendet, um zwei Zufallszahlen zu generieren; die erste sollte im Bereich von 5 bis 105 liegen und die zweite im Bereich von 2199 bis 2200.

int r1 = randomNumberGenerator(5, 105);
int r2 = randomNumberGenerator(2199, 2200);

Um diese Methode auszuführen, führen Sie die folgenden Befehle in Ihrem Terminal aus:

$ cd project
$ touch RandomNumbers.java
// fügen Sie den Code ein
$ javac RandomNumbers.java
$ java RandomNumbers

Zufallszahlengenerator mit der Random-Klasse

Eine andere Möglichkeit, um Zufallszahlen in einem bestimmten Bereich zu generieren, ist es, die nextInt()-Methode in der Random-Klasse zu verwenden.

Die nextInt()-Methode generiert einen ganzzahligen Wert im Bereich [0, n).

public static int randomNumberGenerator(int min, int max) {
    Random r = new Random();
    int randomNum = r.nextInt(max - min) + min;
    return randomNum;
}

Diese Methode nimmt die min- und max-Parameter entgegen und gibt eine zufällige Ganzzahl im angegebenen Bereich zurück. In dieser Methode erzeugt nextInt() eine Zufallszahl zwischen 0 und (max-min), und dann addieren wir den min-Wert, um die endgültige Zufallszahl zu erhalten.

Hier ist der Code, der die randomNumberGenerator() verwendet, um zwei Zufallszahlen zu generieren; die erste sollte im Bereich von 500 bis 2000 liegen, und die zweite sollte im Bereich von 500 bis 501.

int randomNum1 = randomNumberGenerator(500, 2000);
int randomNum2 = randomNumberGenerator(500, 501);

Um diese Methode auszuführen, führen Sie die folgenden Befehle in Ihrem Terminal aus:

$ cd project
$ touch RandomNumbers.java
// fügen Sie den Code ein
$ javac RandomNumbers.java
$ java RandomNumbers

Verwenden der ints()-Methode der Random-Klasse

Wir können auch die ints()-Methode der Random-Klasse verwenden, um einen Stream von Zufallszahlen in einem Bereich zu generieren.

Hier ist der Code, um den Stream zu generieren:

Random r = new Random();
IntStream stream = r.ints(5, 100, 120);

Hier nimmt die ints()-Methode drei Parameter entgegen. Erstens der count-Parameter, der definiert, wie viele Ganzzahlen wir generieren möchten, und der bound-Parameter, der den Bereich definiert. Beispielsweise ist im unserem Code der bound-Parameter von 100 bis 120. Es ist ein inklusives Minimum (100) und ein exklusives Maximum (120) Parameter.

Nachdem wir diesen Stream erstellt haben, können wir ihn mit forEach() verarbeiten oder in eine Collection wie Liste oder Array sammeln.

Hier ist der Code, der die ints()-Methode verwendet, um fünf Zufallszahlen zwischen 150 und 2000 zu generieren:

int min = 150; //definiert das minimale Intervall
int max = 2000; //definiert das maximale Intervall

Random r = new Random();
IntStream stream = r.ints(5, min, max);//Generiert den Zufallsstrom
int randomNum = stream.findFirst().getAsInt();//Erhält den ersten Wert aus dem Stream

System.out.print("Die Zufallszahl ist: " + randomNum);//Gibt die Zufallszahl aus

Um diese Methode auszuführen, führen Sie die folgenden Befehle in Ihrem Terminal aus:

$ cd project
$ touch RandomNumbers.java
// fügen Sie den Code ein
$ javac RandomNumbers.java
$ java RandomNumbers

Zusammenfassung

Das Generieren von Zufallszahlen in einem bestimmten Bereich in Java ist für mehrere Anwendungen von entscheidender Bedeutung. In diesem Lab haben Sie mehrere Methoden gelernt, um Zufallszahlen in einem Bereich zu generieren, wie die Verwendung von Math.random(), Random.nextInt() und Random.ints(). Jede Methode hat ihre Vor- und Nachteile, und Sie sollten diejenige wählen, die am besten Ihren Anforderungen entspricht.