From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001
From: Sven Eisenhauer
Date: Fri, 10 Nov 2023 15:11:48 +0100
Subject: add new repo
---
.../hjp5/html/k100108.html | 308 +++++++++++++++++++++
1 file changed, 308 insertions(+)
create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100108.html
(limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100108.html')
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100108.html b/Master/Reference Architectures and Patterns/hjp5/html/k100108.html
new file mode 100644
index 0000000..0a373f0
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/hjp5/html/k100108.html
@@ -0,0 +1,308 @@
+
+
+
+Handbuch der Java-Programmierung, 5. Auflage
+
+
+
+
+
+
+
+
+
+
+
+
+16.1 Die Klasse Random
+
+
+
+
+
+
+
+16.1.1 Initialisierung des Zufallszahlengenerators
+
+
+Zufallszahlen werden beim Programmieren erstaunlich
+häufig gebraucht, beispielsweise für Simulationen, für
+Spiele oder zum Aufbau von Testszenarien. Java stellt zu diesem Zweck
+eine Klasse Random
+zur Verfügung, mit der Zufallszahlen erzeugt werden können.
+Sie basiert auf dem Linear-Kongruenz-Algorithmus, wie er beispielsweise
+in D.E. Knuths »The Art Of Computer Programming, Vol. 2«
+beschrieben ist.
+
+
+Die Klasse Random
+erlaubt das Instanzieren eines Zufallszahlengenerators mit oder ohne
+manuelles Setzen des seed-Wertes
+(also der internen Zufallsvariable):
+
+
+
+
+
+
+public Random()
+
+public Random(long seed)
+
+
+ |
+
+java.util.Random |
+
+
+
+
+Wird der seed-Parameter übergeben,
+initialisiert der Zufallszahlengenerator seinen internen Zähler
+mit diesem Wert, und die anschließend erzeugte Folge von Zufallszahlen
+ist reproduzierbar. Wird dagegen der parameterlose Konstruktor
+aufgerufen, initialisiert er den Zufallszahlengenerator auf der Basis
+der aktuellen Systemzeit. Die Zufallszahlenfolge ist in diesem Fall
+nicht reproduzierbar.
+
+
+
+
+
16.1.2 Erzeugen von Zufallszahlen
+
+
+
+
+Gleichverteilte Zufallszahlen
+
+
+Der Zufallszahlengenerator kann Zufallszahlen für die numerischen
+Grundtypen int,
+long,
+float
+oder double
+erzeugen. Durch Aufruf einer der Methoden nextInt,
+nextLong,
+nextFloat
+oder nextDouble
+wird die jeweils nächste Zufallszahl des entsprechenden Typs
+ermittelt und an den Aufrufer zurückgegeben:
+
+
+
+
+
+
+public int nextInt()
+public int nextInt(int n)
+
+public long nextLong()
+
+public float nextFloat()
+
+public double nextDouble()
+
+
+ |
+
+java.util.Random |
+
+
+
+
+
+
+Sollen nur ganzzahlige Zufallswerte unterhalb einer bestimmten Obergrenze
+n erzeugt werden, kann das Ergebnis zusätzlich modulo
+n genommen werden. Sollen nur positive Ganzzahlen (inklusive
+0) erzeugt werden, kann die mit einem int
+parametrisierte Variante von nextInt
+verwendet werden. Zurückgegeben werden gleichverteilte Zufallszahlen
+zwischen 0 (inklusive) und n
+(exklusive).
+
+
+Das folgende Beispiel zeigt die Verwendung von Zufallszahlen zur Generierung
+eines Lottotips. Hierbei werden durch Aufruf von nextInt
+ganzzahlige Zufallszahlen erzeugt und mit Hilfe der abs-Methode
+und des Modulo-Operators auf den Wertebereich von 1 bis 49 beschränkt.
+BitSet b verhindert, dass Zahlen
+doppelt in den Tipp eingehen, und wird zur sortierten Ausgabe des
+Ergebnisses verwendet:
+
+
+
+
+
+
+
+
+001 /* Listing1601.java */
+002
+003 import java.util.*;
+004
+005 public class Listing1601
+006 {
+007 public static void main(String[] args)
+008 {
+009 BitSet b = new BitSet();
+010 Random r = new Random();
+011
+012 System.out.print("Mein Lottotip: ");
+013 int cnt = 0;
+014 while (cnt < 6) {
+015 int num = 1 + Math.abs(r.nextInt()) % 49;
+016 if (!b.get(num)) {
+017 b.set(num);
+018 ++cnt;
+019 }
+020 }
+021 for (int i = 1; i <= 49; ++i) {
+022 if (b.get(i)) {
+023 System.out.print(i + " ");
+024 }
+025 }
+026 System.out.println("");
+027 }
+028 }
+
+ |
+
+Listing1601.java |
+
+
+
+Listing 16.1: Zufallszahlen zur Generierung eines Lottotips
+
+
+
+
+Weitere Informationen zu Zufallszahlen finden sich in Abschnitt 48.1.4,
+in dem kryptografische Zufallszahlen erläutert werden.
+
+
+
+
+
Normalverteilte Zufallszahlen
+
+
+Während diese Methoden gleichverteilte Zufallszahlen erzeugen,
+liefert die Methode nextGaussian
+die Zufallszahlen auf der Basis der Normalverteilung mit einem
+Mittelwert von 0.0 und der Standardabweichung von 1.0:
+
+
+
+
+Auch hier erzeugt ein Aufruf die jeweils nächste Zufallszahl
+auf der Basis des vorherigen Werts.
+
+
+
+
+
--
cgit v1.2.3