Java Standard: Random

Aus Wikibooks

Wechseln zu: Navigation, Suche

[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 0,0 \le z < 1,0.


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;
 }
Persönliche Werkzeuge