Java Standard: Random
Random
ist eine Klasse zur Erzeugung von Pseudozufallszahlen. 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]
Da Math.random eine Zahl kleiner 1 erzeugt, muss man, um eine Zahl zwischen 1 und 49 zu erhalten, das Ergebnis der Funktion Math.random mit 49 multiplizieren und diese Zahl dann um 1 vergrößern.
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] = rand.nextInt(49) + 1;
}