Java Standard: Random
Aus Wikibooks
[Bearbeiten] Random - eine Klasse zur Erzeugung von Pseudo-Zufallszahlen
Random kann zur Erzeugung von Pseudozufallszahlen benutzt werden. Die statische Funktion Math.random() macht z.B. direkt Gebrauch davon. Random erzeugt eine Pseudo-Zufallszahl, d.h. keine richtige Zufallszahl. Der Unterschied liegt darin, dass zwei Random-Instanzen, wenn sie direkt gleichzeitig gestartet werden, genau die gleichen Zufallszahlen erzeugen (was bei "echten" Zufallszahlen nicht der Fall wäre. Um dieses Manko abzuschalten gibt es eine abgeleitete Klasse SecureRandom, die "echte" Zufallszahlen mit anderen numerischen Algorithmen erstellt als Random. Random benutzt einen 48-Bit großen Startwert ("seed") zur Erzeugung der Zufallszahlen. Die Zufallszahlen (z) liegen immer im Bereich
.
Ein einfaches Beispiel zur einfachen Erzeugung von Lottozahlen (ein Array aus 10 Integern wird mit Math.random() initialisiert:
final int MAX = 10; // Konstante für Feldgroesse int daten[] = new int[MAX]; // integer-Feld erzeugen for (int i = 0; i < MAX; i++) // Schleife über alle Elemente daten[i] = (int)Math.floor((Math.random() * 49) + 1); // Zufallszahl zuweisen [1..49]
Ein einfaches Beispiel zur Erzeugung von Lottozahlen mit Hilfe der Random-Klasse
public static final int MAX = 10; // Konstante für Feldgroesse
int daten[] = new int[MAX]; // integer-Feld erzeugen
Random rand = new Random();
for( int i=0; i<MAX; i++ ) // Schleife über alle Elemente
{
daten[i] = Math.abs( rand.nextInt()) % 49 + 1;
}