Arithmetischer Zufallszahlengenerator

Arithmetische Zufallszahlengeneratoren sind Zufallszahlengeneratoren zur Erzeugung von Zufallszahlen, die auf der Arithmetik beruhen. Sie basieren auf dem Satz von Weyl, verwenden

u i = i y 0 i y 0 = i y 0 mod 1 {\displaystyle u_{i}=iy_{0}-\lfloor iy_{0}\rfloor =iy_{0}{\bmod {1}}}

als Generator, wobei die Definitionen bei Satz von Weyl gelten, also insbesondere y 0 ] 0 , 1 [ {\displaystyle y_{0}\in {]0,1[}} eine irrationale Zahl ist. Hierbei steht m o d {\displaystyle \mathrm {mod} } für die Modulo-Operation. a {\displaystyle \lfloor a\rfloor } bezeichnet die größte Ganzzahl die kleiner oder gleich a {\displaystyle a} ist.

Arithmetische Zufallszahlengenerator werden in der Praxis statt physikalischer Zufallszahlengeneratoren eingesetzt. Da auf Taschenrechnern oder Computern keine irrationalen Zahlen darstellbar sind, beschränkt man sich häufig auf rekursive arithmetische Zufallszahlengeneratoren.

Rekursive arithmetische Zufallszahlengeneratoren

Dies sind Zufallszahlengeneratoren, die auf arithmetischen Zufallszahlengeneratoren basieren, bei denen man sich jedoch mit bestimmten rationalen Zahlen als Zufallszahlen zufriedengibt, da irrationale Zahlen, von denen arithmetische Zufallszahlengeneratoren ausgehen, auf Rechnern nicht darstellbar sind. Es handelt sich also um Pseudozufallszahlengeneratoren.

Zur Initialisierung des Generators verwendet man Startwerte y 0 , y 1 , . . . , y k 1 {\displaystyle y_{0},y_{1},...,y_{k-1}} , die als Saat bezeichnet werden. Sie können z. B. fest vorgegeben werden, wenn die erzeugte Zahlenfolge wiederholbar sein soll, oder man initialisiert sie auf zufällige Weise. Häufig verwendet man dafür die Rechneruhr als Datenquelle, die aktuelle Uhrzeit bestimmt also die Initialwerte der y n {\displaystyle y_{n}} .

Eine arithmetische Funktion

f : { 0 , . . . , m 1 } k { 0 , . . . , m 1 } {\displaystyle f:\left\{0,...,m-1\right\}^{k}\rightarrow \left\{0,...,m-1\right\}}

erzeugt nun sukzessive die Werte

y n := f ( y n k , y n k + 1 , . . . , y n 1 ) {\displaystyle y_{n}:=f(y_{n-k},y_{n-k+1},...,y_{n-1})} , wobei n k {\displaystyle n\geq k} .

Als Zufallszahlen im Intervall [ 0 ; 1 [ {\displaystyle [0;1[} verwendet man dann z. B.:

u i := y i m {\displaystyle u_{i}:={\frac {y_{i}}{m}}} .

Man gibt sich für die Zufallszahlen also mit Werten aus der Menge { 0 , 1 m , 2 m , . . . , m 1 m } {\displaystyle \left\{0,{\frac {1}{m}},{\frac {2}{m}},...,{\frac {m-1}{m}}\right\}} zufrieden, wobei m {\displaystyle m} eine hinreichend große natürliche Zahl ist.

Die wohl bedeutendsten rekursiven arithmetischen Zufallszahlengeneratoren sind Kongruenzgeneratoren.

Vorteile

Bei geeigneter Funktion  f {\displaystyle f}  lassen sich schnell Zufallszahlen erzeugen. Diese sind bei Angabe der Saat vollständig reproduzierbar.

Nachteile

Die Folge ( y n ) n 0 {\displaystyle (y_{n})_{n\geq 0}} ist deterministisch. Es werden keine echten Zufallszahlen, sondern vielmehr nur Pseudozufallszahlen erzeugt. Es handelt sich also um einen Pseudozufallszahlengenerator. Die Determiniertheit bedingt auch, dass eine Unabhängigkeit und Gleichverteilung der Folge nicht gegeben ist. Insbesondere wird irgendwann eine Schleife erzeugt. Es gibt also n 0 , p N {\displaystyle n_{0},p\in \mathbb {N} } mit y n + p = y n {\displaystyle y_{n+p}=y_{n}} für alle n n 0 {\displaystyle n\geq n_{0}} . Das kleinste p {\displaystyle p} bezeichnet man hierbei als Periode.

Ob diese Nachteile aber eine Rolle spielen, hängt von der Anwendung ab: Zum Beispiel ist es für Simulationen kein Nachteil, dass die generierten Zahlen vorhersagbar sind, solange die Periodenlänge hinreichend groß ist. Im Gegenteil: Die Reproduzierbarkeit der Zahlen erleichtert die Analyse und Fehlersuche.

Literatur

  • J. Baumeister: Numerische Methoden der Finanzmathematik. (postscript) Kapitel 3, Zufallszahlen und ihre Erzeugung. Goethe-Universität, Frankfurt am Main, 2009, abgerufen am 22. April 2019.