Das Generieren einer Reihe von Zufallszahlen ist eine der häufigsten Aufgaben, die von Zeit zu Zeit auftreten. In Java kann dies einfach mit der Klasse java.util.Random erreicht werden.
Der erste Schritt besteht, wie bei der Verwendung einer API-Klasse, darin, die import-Anweisung vor dem Start Ihrer Programmklasse zu platzieren:
Als nächstes erstellen Sie ein zufälliges Objekt:
Das Zufallsobjekt bietet Ihnen einen einfachen Zufallszahlengenerator. Die Methoden des Objekts ermöglichen die Auswahl von Zufallszahlen. Beispielsweise geben die Methoden nextInt () und nextLong () eine Zahl zurück, die innerhalb des Wertebereichs (negativ und positiv) des Datentyps int bzw. long liegt:
Die zurückgegebenen Zahlen sind zufällig ausgewählte Int- und Long-Werte:
Normalerweise müssen die zu erzeugenden Zufallszahlen aus einem bestimmten Bereich stammen (z. B. einschließlich 1 bis 40). Zu diesem Zweck kann die nextInt () -Methode auch einen int-Parameter akzeptieren. Es gibt die Obergrenze für den Zahlenbereich an. Die obere Grenzzahl ist jedoch nicht als eine der Zahlen enthalten, die ausgewählt werden können. Das mag verwirrend klingen, aber die nextInt () -Methode funktioniert ab Null. Beispielsweise:
wählt nur eine Zufallszahl von 0 bis einschließlich 39 aus. Um aus einem Bereich auszuwählen, der mit 1 beginnt, fügen Sie einfach 1 zum Ergebnis der nextInt () -Methode hinzu. Wenn Sie beispielsweise eine Zahl zwischen 1 und 40 auswählen möchten, fügen Sie dem Ergebnis eine hinzu:
Wenn der Bereich von einer höheren Zahl als eins ausgeht, müssen Sie:
Wenn Sie beispielsweise eine Zahl von 5 bis einschließlich 35 auswählen möchten, beträgt die Obergrenze 35-5 + 1 = 31, und dem Ergebnis müssen 5 hinzugefügt werden:
Ich möchte darauf hinweisen, dass die Random-Klasse auf deterministische Weise Zufallszahlen erzeugt. Der Algorithmus, der die Zufälligkeit erzeugt, basiert auf einer Zahl, die als Startwert bezeichnet wird. Wenn die Startnummer bekannt ist, ist es möglich, die Zahlen herauszufinden, die aus dem Algorithmus erzeugt werden sollen. Um dies zu beweisen, verwende ich die Zahlen aus dem Datum, an dem Neil Armstrong zum ersten Mal auf den Mond getreten ist, als meine Startnummer (20. Juli 1969):
Egal, wer diesen Code ausführt, die Folge der erzeugten "Zufallszahlen" ist:
Standardmäßig wird die Startnummer verwendet von:
Dies ist die aktuelle Zeit in Millisekunden seit dem 1. Januar 1970. Normalerweise werden für die meisten Zwecke ausreichend Zufallszahlen erzeugt. Beachten Sie jedoch, dass zwei Zufallszahlengeneratoren, die innerhalb derselben Millisekunde erstellt wurden, dieselben Zufallszahlen generieren.
Seien Sie auch vorsichtig, wenn Sie die Zufallsklasse für eine Anwendung verwenden, für die ein sicherer Zufallszahlengenerator erforderlich ist (z. B. ein Glücksspielprogramm). Es ist möglicherweise möglich, die Startnummer anhand der Laufzeit der Anwendung zu erraten. Im Allgemeinen ist es für Anwendungen, bei denen die Zufallszahlen absolut kritisch sind, am besten, eine Alternative zum Zufallsobjekt zu finden. Für die meisten Anwendungen, bei denen nur ein bestimmtes zufälliges Element vorhanden sein muss (z. B. Würfel für ein Brettspiel), funktioniert dies einwandfrei.