Zufallszahlen – Mathematik zum Nachbilden von Zufälligkeit SommerUni 2013 Bergische Universität Wuppertal Autor: Prof. Dr. Roland Pulch Aufgabe: Konstruiere Zufallszahlen aus der Menge {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, d.h. wähle zufällig eine der zehn Ziffern aus. Das ermitteln von n Zufallszahlen ergibt eine Stichprobe x1 , x2 , . . . , xn . Sei Xj die Zufallsvariable zum jten Versuch mit j = 1, . . . , n. Die Wahrscheinlichkeiten zur Auswahl von Ziffern sind gleich für jedes j. Sei daher kurz X die Zufallsvariable, die die Auswahl einer der Zahlen beschreibt. Die Wahrscheinlichkeit P für die Auswahl einer bestimmten Zahl ist für alle zehn Ziffern gleich. i P (X = i) 0 1 2 3 4 5 6 7 8 9 1 10 1 10 1 10 1 10 1 10 1 10 1 10 1 10 1 10 1 10 Der Erwartungswert von X ist E(X) = 9 ∑ i· 1 10 =0· +1· 1 10 +2· + 12 · 1 10 + 22 · 1 10 1 10 + ··· + 9 · 1 10 = i=0 9 = 4.5. 2 Analog gilt E(X 2 ) = 9 ∑ i2 · 1 10 = 02 · 1 10 1 10 + · · · + 92 · 1 10 i=0 = 57 = 28.5. 2 Die Varianz ist allgemein Var(X) = E([X − E(X)]2 ) = E(X 2 ) − (E(X))2 und speziell hier ergibt sich 57 Var(X) = − 2 ( )2 9 33 = = 8.25. 2 4 Als Schätzer für den Erwartungswert dient das arithmetische Mittel 1∑ x̄n = xj . n j=1 n 1 Als Schätzer für die Varianz folgt die Stichprobenvarianz 1 ∑ [xj − x̄n ]2 . n − 1 j=1 n s̄n = Desweiteren können in der Stichprobe x1 , . . . , xn Wiederholungen von aufeinanderfolgenden Zahlen auftreten, d.h. xj+1 = xj für ein j = 1, . . . , n − 1. Somit können bis zu n − 1 Wiederholungen entstehen oder auch gar keine Wiederholung. Ist xj bereits festgelegt, dann ist die Wahrscheinlichkeit für 1 das Ereignis Xj+1 = xj gerade 10 . Es sei Y die Zufallsvariable, die die Anzahl der Wiederholungen beschreibt. Somit gilt Y ∈ {0, 1, 2, . . . , n − 1}. Also ist Y binomial-verteilt mit n − 1 Versuchen und einer Trefferwahrscheinlichkeit 1 von 10 . Wahrscheinlichkeit 1 0.8 0.6 0.4 0.2 0 0 5 10 15 Anzahl der Wiederholungen 20 Abbildung 1: Wahrscheinlichkeiten von Wiederholungen der Ziffern. Im Fall n = 20 ergeben sich die in Abbildung 1 als Histogramm dargestellten Wahrscheinlichkeiten. Für hohe Anzahlen von Wiederholungen (Y ≥ 7) sind diese Wahrscheinlichkeiten somit verschwindend klein. Die Wahrscheinlichkeiten für die Fälle Y ≤ 6 finden sich in folgender Tabelle. k 0 1 2 3 4 5 6 P (Y = k) 0.1351 0.2852 0.2852 0.1796 0.0798 0.0266 0.0086 Unser Ziel wird es nun sein die Stichprobe x1 , . . . , xn mit einer geeigneten Formel zu konstruieren. Dadurch werden die Zahlen nicht zufällig sein, sich 2 jedoch ähnlich verhalten wie echte Zufallszahlen. Um dieses Ziel zu erreichen stellen wir zunächst eine andere Aufgabe. Aufgabe: Bestimme Zufallszahlen aus den reellen Zahlen im Intervall [0, 1). Diese Aufgabe ist gleichbedeutend mit: Wähle zufällig einen Punkt auf Zahlengerade innerhalb der Strecke [0, 1). 0 1 Es bezeichne U die zugehörige Zufallsvariable. Damit folgt 0 ≤ U < 1. Für 0 ≤ c < d < 1 soll für die Wahrscheinlichkeit P gelten P (c ≤ U ≤ d) = d − c. Man kann diese Zufallszahlen dann auf ganze Zahlen aus {0, 1, 2, . . . , m − 1} umrechnen. Es ist 0 ≤ mU < m. Somit definieren wir die Zufallsvariable X über X = max {i ∈ 0 : i ≤ mU } . (1) N Für Zufallszahlen aus {1, 2, . . . , m} setzen wir einfach X = max {i ∈ N0 : i ≤ mU } + 1. (2) Somit können wir über diese Aufgabe auch die Zufallszahlen aus der ursprünglichen Aufgabenstellung mit m = 10 erhalten. Linear kongruente Generatoren Die Konstruktion von reellen Zufallszahlen in [0, 1) über linear kongruente Generatoren wird im folgenden kurz beschrieben. 1. Wähle eine große ganze Zahl M , z.B. eine Zweierpotenz (M = 2q ). 2. Wähle große ganze Zahlen a, b mit 0 ≤ a, b < M und a ̸= 0. 3. Setze eine ganze Zahl z0 als Startwert fest mit 0 < z0 < M . 3 Wir definieren dadurch eine Folge von nichtnegativen ganzen Zahlen über zj+1 = azj + b für j = 0, 1, 2, . . . . Wir definieren nun die Zahl z̃j ∈ {0, 1, 2, . . . , M − 1} als den Divisionsrest der Division von zj durch M , d.h. zj = kj M + z̃j z̃j = zj − kj M bzw. mit einer eindeutigen ganzen Zahl kj ≥ 0. Schließlich sei uj = z̃j M für jedes j. Dadurch gilt { } uj ∈ 0, M1 , M2 , M3 , . . . , MM−2 , MM−1 , (3) d.h. auch 0 ≤ uj < 1. Die Zahlen uj verhalten sich näherungsweise wie Realisierungen einer gleichverteilten Zufallsvariable im Intervall [0, 1), weil M eine große Zahl ist. Es sei betont, dass die erzeugte Folge u0 , u1 , u2 , . . . nicht zufällig sondern klar durch eine Formel definiert ist. Deshalb nennt man die erzeugten Werte auch Pseudo-Zufallszahlen. Zudem gibt es höchstens M verschiedene Zahlen wegen (3). Beispiele: a) Generator RANDU, siehe [4]: M = 231 ≈ 2 · 109 , a = 65539, b = 0. b) Generator aus Numerical Recipes, siehe [5]: M = 232 ≈ 4 · 109 , a = 1664525, b = 1013904223. Der Startwert z0 kann beliebig gewählt werden und ergibt in jedem Generator das jeweils qualitativ gleiche Verhalten der Folge. Abbildung 2 stellt Auswertungen mit diesen beiden Generatoren grafisch dar. Visuell stellen wir eine näherungsweise zufällige Abfolge fest. Ein Kriterium der Güte eines Generators ist wie gut der Erwartungswert und die Varianz durch den Mittelwert und die Stichprobenvarianz approximiert werden. Für eine gleichverteilte Zufallsvariable U ∈ [0, 1) gilt E(U ) = 1 2 und Var(U ) = 4 1 . 12 0 0.2 0.4 0.6 0.8 0 1 0.2 0.4 0.6 0.8 1 u u Abbildung 2: Erste 10 (oben), 100 (mitte) und 1000 (unten) Zufallszahlen des Generators (a) mit Startwert z0 = 200 (links) und des Generators (b) mit Startwert z0 = 2 (rechts). Abbildung 3 zeigt diese Abweichungen im Fall des Generators (b). Wir stellen fest, dass die Abweichungen betragsmäßig klein sind (unter 10−3 bzw. 10−4 ). Jedoch gehen sie für steigende Anzahlen von Zufallszahlen nicht gegen null, was für tatsächliche Zufallszahlen gegeben wäre. Wie bereits erwähnt können die reellen Zufallszahlen aus dem Intervall [0, 1) umrechnet werden auf ganze Zufallszahlen in den Mengen {1, 2, 3, . . . , m} oder {0, 1, 2, . . . , m − 1}, siehe (1) und (2). Spezialfälle: • Münzwurf: {0, 1}, 0 bedeutet Kopf, 1 bedeutet Zahl, • Würfeln: {1, . . . , 6}, • Roulette: {0, 1, 2, . . . , 36}, • Lotto 6 aus 49: {1, . . . , m} sukzessive m = 49, 48, 47, 46, 45, 44. Wir greifen den Fall {0, 1, 2, . . . , 9} wieder auf, wobei wir n = 20 PseudoZufallszahlen pro Versuchsreihe bestimmen. Verwendet wurde der Generator (b) mit Startwert z0 = 150. Damit wurden einmal 15 Reihen und einmal 10000 Reihen aus je 20 Werten erstellt. Abbildung 4 zeigt die relativen 5 −3 1 −4 x 10 1 0.8 Abweichung Abweichung 0.8 x 10 0.6 0.4 0.2 0.6 0.4 0.2 0 2 4 6 8 Anzahl der Zufallszahlen 0 2 4 6 8 Anzahl der Zufallszahlen 7 x 10 7 x 10 Abbildung 3: Beträge der Differenzen des Mittelwerts zum Erwartungswert (links) und der Stichprobenvarianz zur Varianz (rechts) für Generator (b) zu verschiedener Länge der Zahlenfolge (bis zu 108 ). 15 Reihen je 20 Zufallszahlen 10000 Reihen je 20 Zufallszahlen 1 Wahrscheinlichkeit Wahrscheinlichkeit 1 0.8 0.6 0.4 0.2 0 0.8 0.6 0.4 0.2 0 0 5 10 15 Anzahl der Wiederholungen 20 0 5 10 15 Anzahl der Wiederholungen 20 Abbildung 4: Vergleich von Wahrscheinlichkeiten (blau) und relativen Häufigkeiten (rot) zur Wiederholung von Ziffern in Folge von Zufallszahlen. 6 Häufigkeiten der Wiederholungen von aufeinanderfolgenden Ziffern zusammen mit den exakten Wahrscheinlichkeiten dieser Ereignisse. Wir erkennen eine sehr gute Übereinstimmung bei hoher Versuchszahl. Hier wurde sogar nur eine lange Folge von Pseudo-Zufallszahlen zu einem bestimmten Startwert berechnet und diese dann in die verschiedenen Reihen aufgeteilt. Anwendung: Radioaktiver Zerfall Es bezeichne N die Anzahl der Atome einer radioaktiven Substanz. Die Änderung dieser Anzahl über die Zeit t hinweg wird beschrieben durch die Zerfallskurve ( )T t 1 1/2 N (t) = N (0) · , (4) 2 wobei N (0) die Anzahl der Atome zur Anfangszeit t = 0, N (t) die Anzahl der Atome zur Zeit t ≥ 0 und T1/2 die Halbwertszeit bezeichnet. Beispiele sind in folgender Tabelle gegeben. Isotop Helium He-6 Halbwertszeit 0.8 Sek. Radon Rn-222 3.8 Tage Kohlenstoff C-14 5730 Jahre Die Werte N (t) aus (4) sind reelle Zahlen, d.h. sie sind nur gute Näherungen der tatsächlichen Anzahlen, welche ganze Zahlen sind. Wir teilen nun die Zeitachse in kleine Intervalle der Länge ∆t > 0 auf. Es entstehen somit die Zeitpunkte tj = j∆t für j = 0, 1, 2, . . . . Betrachten wir ein einzelnes Atom zum Zeitpunkt tj , dann ist die Wahrscheinlichkeit p, dass dieses Atom bis zum Zeitpunkt tj+1 zerfällt, dann p= ln(2) ∆t T1/2 (5) mit dem natürlichen Logarithmus. Vorausgesetzt wird dabei ein hinreichend kleines ∆t. Während des Zeitintervalls [tj , tj+1 ] gibt es daher zwei mögliche Ereignisse für das einzelne Atom: 7 400 Teilchenzahl Teilchenzahl 10000 350 300 250 200 150 100 50 0 0 0.5 1 1.5 8000 6000 4000 2000 0 2 0 0.5 1 1.5 2 Zeit Zeit Abbildung 5: Zerfallskurve (rote Linie) und Atomanzahlen aus Zufallsexperiment (blaue Sterne) für N (0) = 400 (links) und N (0) = 10000 (rechts). 1. das Atom zerfällt mit Wahrscheinlichkeit p, 2. das Atom bleibt bestehen mit Wahrscheinlichkeit 1 − p. Dieses Bernoulli-Experiment können wir ebenfalls mit den Pseudo-Zufallszahlen simulieren. Wir bestimmen eine Pseudo-Zufallszahl u ∈ [0, 1) und machen die Fallunterscheidung: 1. u ≤ p : das Atom zerfällt, 2. u > p : das Atom bleibt bestehen. p 0 1−p p 1 Dies können wir jetzt ausgehend von ganzzahligem N (0) für jedes Atom durchführen und in jedem Zeitintervall für die noch bestehenden Atome wiederholen. Wir setzen T1/2 = ln(2) ≈ 0.69, wodurch p = ∆t folgt laut (5). Das Zeitintervall t ∈ [0, 2] wird unterteilt in die Längen ∆t = 0.001. Abbildung 5 zeigt die Ergebnisse für unterschiedliche Anfangswerte der Atomanzahlen. 8 Wir erkennen, dass bei hoher Anzahl eine sehr gute Übereinstimmung mit der Zerfallskurve (4) auftritt. Als weiterführende Literatur zu linear kongruenten Generatoren und zu Pseudo-Zufallszahlen sei die Internetseite [3] sowie Abschnitt 5.2 aus dem Buch [1] empfohlen. Untersuchungen zu von Menschen ausgedachten Zufallszahlen finden sich im Buch [2]. Literatur [1] M. Günther, A. Jüngel: Finanzderivate mit MATLAB. Vieweg, 2003. [2] G.M. Ziegler: Darf ich Zahlen? Geschichten aus der Mathematik. Piper, 2010. [3] http://de.wikipedia.org/wiki/Linearer Kongruenzgenerator [4] http://en.wikipedia.org/wiki/RANDU [5] http://en.wikipedia.org/wiki/Linear congruential generator 9