Class Random
StdRandom
beitet statische Methoden an, um Zufallszahlen
von verschiedenen diskreten und stetigen Verteilungen zu generieren:
Gleichverteilung, Bernoulliverteilung, geometrische Verteilung,
Gauss-Verteilung, Exponentialverteilung, Pareto-Verteilung, Poissonverteilung
und Cauchy-Verteilung.
Es werden außerdem Methoden angeboten, um Arrays (oder Teil-Arrays) zu mischen und zufällige Permutationen zu erzeugen.
Per Konvention sind alle Intervalle nach oben offen! Die untere Grenze ist
also jeweils inkludiert, die obere nicht. Analoges gilt für das Mischen
(shuffle(a, lo, hi)
mischt die Elemente hi - lo
Elemente im Array a[]
, beginnend bei Index lo
(inklusive) und endend bei Index hi
(exklusive).
COPYRIGHT BY Karsten Brodmann 2022 - Die Bibliothek darf ausschließlich für private Lernzwecke verwendet werden. Eine Weitergabe ist nur mit schriftlicher Genehmigung des Autors gestattet.
- Version:
- 1.0
- Author:
- Karsten Brodmann (kb@punkt-akademie.de)
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Zufälliger Wahrheitswert einer Bernoulli-Verteilung mit Erfolgswahrscheinlichkeit 1/2.static boolean
bernoulli
(double p) Zufälliger Wahrheitswert einer Bernoulli-Verteilung mit Erfolgswahrscheinlichkeit p.static double
cauchy()
Zufällige Gleitkommazahl aus der Cauchy-Verteilung.static int
discrete
(double[] probabilities) Zufällige Ganzzahl einer deiskreten Verteilung mit den Werten 0 bis maximaler Indexwert des Arrays mit den Wahrscheinlichkeiten.static double
exp
(double lambda) Zufällige Gleitkommazahl einer Exponentialverteilung mit Rate λ.static double
gaussian()
Zufällige Gleitkommazahl der Standard-Gauss-Normalverteilung.static double
gaussian
(double mu, double sigma) Zufällige Gleitkommazahl der Gauss-Normalverteilung mit Mittelwert μ und Standardabweichung σ.static int
geometric
(double p) Ganzzahlige Zufallszahl einer geometrischen Verteilung mit Erfolgswahrscheinlichkeit p.static long
getSeed()
Startwert des Pseudo-Zufallszahlengenerators.static double
pareto()
Zufällige Gleitkommazahl einer Standard-Pareto-Verteilung.static double
pareto
(double alpha) Zufällige Gleitkommazahl einer Pareto-Verteilung mit Form-Parameter α.static int[]
permutation
(int n) Gleichverteilte Zufallspermutation von n Ganzzahlen.static int
poisson
(double lambda) Zufällige Ganzzahl einer Poissonverteilung mit Mittelwert λ.static void
setSeed
(long s) Setzen des Startwertes für den Pseudo-Zufallszahlengenerator.static void
shuffle
(boolean[] a) Gleichverteiltes Mischen eines Arrays von Wahrheitswerten.static void
shuffle
(char[] a) Gleichverteiltes Mischen eines Arrays von Zeichen.static void
shuffle
(double[] a) Gleichverteiltes Mischen eines Arrays von Gleitkommazahlen.static void
shuffle
(int[] a) Gleichverteiltes Mischen eines Arrays ganzer Zahlen.static void
Gleichverteiltes Mischen eines Arrays von Objekten.static void
Gleichverteiltes Mischen eines Arrays von Zeichenketten.static double
uniform()
Zufällige Gleitkommazahl einer Gleichverteilung in [0, 1).static double
uniform
(double a, double b) Gleichverteilte Gleitkommazufallszahl aus [a, b).static int
uniform
(int n) Gleichverteilte Zufallsganzzahl aus [0, n).static int
uniform
(int a, int b) Gleichverteilte ganzzahlige Zufallszahl aus [a, b).static long
uniform
(long n) Gleichverteilte Zufallsganzzahl aus [0, n).
-
Method Details
-
setSeed
public static void setSeed(long s) Setzen des Startwertes für den Pseudo-Zufallszahlengenerator.Die Methode erlaubt es, wiederholt die gleichen Zufallszahlensequenzen zu generieren. Normalerweise sollte die Methode aber, wenn überhaupt, nur einmalig im Programm aufgerufen werden.
- Parameters:
s
- Startwert
-
getSeed
public static long getSeed()Startwert des Pseudo-Zufallszahlengenerators.- Returns:
- Startwert
-
uniform
public static double uniform()Zufällige Gleitkommazahl einer Gleichverteilung in [0, 1).- Returns:
- gleichverteilte Zufallszahl aus [0, 1)
-
uniform
public static int uniform(int n) Gleichverteilte Zufallsganzzahl aus [0, n).- Parameters:
n
- Anzahl möglicher Zahlen- Returns:
- gleichverteilte Zufallsganzzahl aus [0, n)
- Throws:
IllegalArgumentException
- wennn <= 0
-
uniform
public static long uniform(long n) Gleichverteilte Zufallsganzzahl aus [0, n).- Parameters:
n
- Anzahl möglicher Zahlen- Returns:
- gleichverteilte Zufallsganzzahl aus [0, n)
- Throws:
IllegalArgumentException
- wennn <= 0
-
uniform
public static int uniform(int a, int b) Gleichverteilte ganzzahlige Zufallszahl aus [a, b).- Parameters:
a
- kleinster Wert (inklusive)b
- größter Wert (exklusive)- Returns:
- a zufällige Ganzzahl aus [a, b)
- Throws:
IllegalArgumentException
- wennb <= a
IllegalArgumentException
- wennb - a >= Integer.MAX_VALUE
-
uniform
public static double uniform(double a, double b) Gleichverteilte Gleitkommazufallszahl aus [a, b).- Parameters:
a
- kleinster Wert (inklusive)b
- größter Wert (exklusive)- Returns:
- a zufällige Ganzzahl aus [a, b)
- Throws:
IllegalArgumentException
- wennb <= a
IllegalArgumentException
- wennb - a >= Integer.MAX_VALUE
-
bernoulli
public static boolean bernoulli(double p) Zufälliger Wahrheitswert einer Bernoulli-Verteilung mit Erfolgswahrscheinlichkeit p.- Parameters:
p
- Wahrscheilichkeit fürtrue
- Returns:
true
mit Wahrschleinlichkeitp
undfalse
mit Wahrscheinlichkeit1 - p
- Throws:
IllegalArgumentException
- wenn nicht0
≤p
≤1.0
-
bernoulli
public static boolean bernoulli()Zufälliger Wahrheitswert einer Bernoulli-Verteilung mit Erfolgswahrscheinlichkeit 1/2.- Returns:
true
mit Wahrschleinlichkeit 1/2 undfalse
mit Wahrscheinlichkeit 1/2
-
gaussian
public static double gaussian()Zufällige Gleitkommazahl der Standard-Gauss-Normalverteilung.- Returns:
- Zufallszahl der Standard-Gauss-Normalverteilung (Mittelwert 0 und Standardabweichung 1)
-
gaussian
public static double gaussian(double mu, double sigma) Zufällige Gleitkommazahl der Gauss-Normalverteilung mit Mittelwert μ und Standardabweichung σ.- Parameters:
mu
- Mittelwertsigma
- Stanardabweichung- Returns:
- Zufällige Gleitkommazahl der Gauss-Normalverteilung mit Mittelwert μ und Standardabweichung σ.
-
geometric
public static int geometric(double p) Ganzzahlige Zufallszahl einer geometrischen Verteilung mit Erfolgswahrscheinlichkeit p.Die Zufallszahl zeigt die Anzahl der unabhängiger Versuche bis zum ersten Erfolg an.
- Parameters:
p
- Parameter der geometrischen Verteilung- Returns:
- Ganzzahlige Zufallszahl einer geometrischen Verteilung mit Erfolgswahrscheinlichkeit p
oder
Integer.MAX_VALUE
, wennp
näherungsweise gleich1.0
ist. - Throws:
IllegalArgumentException
- wenn nichtp >= 0.0
undp <= 1.0
-
poisson
public static int poisson(double lambda) Zufällige Ganzzahl einer Poissonverteilung mit Mittelwert λ.- Parameters:
lambda
- Mittelwert der Poissonverteilung- Returns:
- zufällige Ganzzahl einer Poissonverteilung mit Mittelwert
lambda
- Throws:
IllegalArgumentException
-lambda
muss größer 0.0 und kleiner unendlich sein
-
pareto
public static double pareto()Zufällige Gleitkommazahl einer Standard-Pareto-Verteilung.- Returns:
- zufällige Gleitkommazahl einer Standard-Pareto-Verteilung
-
pareto
public static double pareto(double alpha) Zufällige Gleitkommazahl einer Pareto-Verteilung mit Form-Parameter α.- Parameters:
alpha
- Form-Parameter- Returns:
- Zufällige Gleitkommazahl einer Pareto-Verteilung mit
* Form-Parameter
alpha
- Throws:
IllegalArgumentException
- wennalpha <= 0.0
-
cauchy
public static double cauchy()Zufällige Gleitkommazahl aus der Cauchy-Verteilung.- Returns:
- zufällige Gleitkommazahl aus der Cauchy-Verteilung
-
discrete
public static int discrete(double[] probabilities) Zufällige Ganzzahl einer deiskreten Verteilung mit den Werten 0 bis maximaler Indexwert des Arrays mit den Wahrscheinlichkeiten.- Parameters:
probabilities
- Wahrscheinlichkeit des Auftretens jeder Ganzzahl (Index)- Returns:
- Zufallszahl einer diskreten Wahrscheinlichkeit:
i
mit Wahrscheinlichkeitprobabilities[i]
- Throws:
IllegalArgumentException
- wennprobabilities
gleichnull
IllegalArgumentException
- wenn Summe der Wahrscheinlichkeiten nicht näherungsweise gleich1.0
IllegalArgumentException
- wenn nicht für jede Wahrscheinlichkeit an Indexi
gilt:probabilities[i] >= 0.0
-
exp
public static double exp(double lambda) Zufällige Gleitkommazahl einer Exponentialverteilung mit Rate λ.- Parameters:
lambda
- Rate der Exponentialverteilung- Returns:
- Zufällige Gleitkommazahl einer Exponentialverteilung mit Rate
lambda
- Throws:
IllegalArgumentException
- wenn nichtlambda > 0.0
-
shuffle
public static void shuffle(double[] a) Gleichverteiltes Mischen eines Arrays von Gleitkommazahlen.- Parameters:
a
- zu mischendes Array- Throws:
IllegalArgumentException
- wenna
gleichnull
-
shuffle
public static void shuffle(int[] a) Gleichverteiltes Mischen eines Arrays ganzer Zahlen.- Parameters:
a
- zu mischendes Array- Throws:
IllegalArgumentException
- wenna
gleichnull
-
shuffle
public static void shuffle(char[] a) Gleichverteiltes Mischen eines Arrays von Zeichen.- Parameters:
a
- zu mischendes Array- Throws:
IllegalArgumentException
- wenna
gleichnull
-
shuffle
Gleichverteiltes Mischen eines Arrays von Zeichenketten.- Parameters:
a
- zu mischendes Array- Throws:
IllegalArgumentException
- wenna
gleichnull
-
shuffle
public static void shuffle(boolean[] a) Gleichverteiltes Mischen eines Arrays von Wahrheitswerten.- Parameters:
a
- zu mischendes Array- Throws:
IllegalArgumentException
- wenna
gleichnull
-
shuffle
Gleichverteiltes Mischen eines Arrays von Objekten.- Parameters:
a
- zu mischendes Array- Throws:
IllegalArgumentException
- wenna
gleichnull
-
permutation
public static int[] permutation(int n) Gleichverteilte Zufallspermutation von n Ganzzahlen.- Parameters:
n
- Anzahl der Zahlen- Returns:
- Array der Länge
n
mit gleichverteilter Zufallspermutation der Zahlen0
,1
, ...,n-1
- Throws:
IllegalArgumentException
- wennn
kleiner gleich 0 ist
-