05.11.21 2754 Views 3

credit: ©Victor Moussa

JAVA Blog

Zufallszahlen generieren

Die vordefinierte Java Klasse Math hat mit der Methode random() einen Zufallsgenerator für positive dezimale Werte. Wie wir diesen Generator einsetzen und warum das, was am Ende rauskommt, nur "pseudo" ist, zeigen wir dir in diesem Tutorial.

Falconbyte unterstüzen

Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.

Schnelles Code-Beispiel

int zufall = (int)((Math.random() * 10) + 1); // 1 ... 10 

    Inhaltsverzeichnis

  1. Es gibt keine Zufälle
  2. Pseudozufallszahl generieren

Es gibt keine Zufälle

Bevor wir konkret werden, sollten wir uns klar machen, dass es nicht möglich ist, eine "echte" Zufallszahl zu erstellen. Die Zahl, die unser Code am Ende des "Zufallsgenerators" produziert, erscheint uns nur als zufällig. In Wirklichkeit beruht sie auf einem deterministischen Algorithmus - wurde also berechnet.

  • Eine Pseudozufallszahl ist eine durch einen Algorithmus berechnete Zahl und erscheint daher nur zufällig (=pseudo).

Pseudozufallszahl generieren

Eine Pseudozufallszahl lässt sich in Java mit Hilfe der statischen Methode Math.random() generieren. Die API-Klasse Math ist im Paket java.lang in jedem Java-Programm standardmäßig enthalten und muss daher nicht importiert werden.

Math.random() liefert einen pseudo-zufälligen positiven double-Wert zwischen 0.0 und kleiner 1.0.

double zufallszahl = Math.random();  

Mögliche Werte könnten sein:

0.7442842549825681, 0.2514743086365736, 0.15476819198386538 usw.

Mit einer solchen Zahl lässt sich in vielen Fällen nicht allzu gut arbeiten. Besser ist die Produktion eines ganzzahligen Werts zwischen 0 und 9. Dazu multiplizieren wir die die Pseudozufallszahl mit 10 und konvertieren anschließend in einen int-Wert:

int zufallszahlGanz = (int) (zufallszahl * 10);           

Mögliche Ergebnisse könnten jetzt so aussehen:

3, 7, 0 usw.

Wollen wir jetzt noch die Range verändern, addieren wir einfach entsprechend:

zufallszahlGanz += 1; // 1 ... 10         

Fertiger Code

Die einzelnen Schritte lassen sich effizient auch in einer Anweisung schreiben. Hier dein Code für eine ganzzahlige Pseudo-Zufallszahl zwischen 1 und 10:

package p1;

public class Pseudozufallszahl {

    public static void main(String[] args) {

        int zufall = (int) ((Math.random() * 10) + 1); // 1 ... 10
        System.out.println(zufall);
    }
}            

Java lernen

text text

PHP Lernen

zur PHP

JavaScript lernen

move nove move

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen