Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
x2 = (zufall-aktuell x1)<br />
x3 = (zufall-aktuell x2)<br />
...<br />
Mit Verwendung <strong>von</strong> set!:<br />
(define zufall (let ((x zufall-init))<br />
(lambda () (set! x<br />
(zufall-aktuell x))<br />
x)))<br />
Vorteil: Programm weiß aktuellen Zufallswert, kein Durchreichen notwendig.<br />
4.1.1 Anwendung: Monte-Carlo-Simulation<br />
• große Megen <strong>von</strong> Experimenten<br />
• zufällige Auswahl <strong>von</strong> Stichproben<br />
• Tabellierung der Ergebnisse<br />
⇒ Wahrscheinlichkeiten erlauben Schlußfolgerungen<br />
• konkret: Wahrscheinlichkeit, daß zwei zufällig gewählte ganze Zahlen<br />
6<br />
keinen gemeinsamen Teiler größer als 1 besitzen: (Cesero-Test),<br />
π 2<br />
daraus kann man einen Schätzwerk für π berechnen:<br />
(define (schaetzwert-pi versuche)<br />
(sqrt (/ 6 (monte-carlo versuche<br />
cesaro-test))))<br />
(define (cesaro-test)<br />
(= (ggt (zufall) (zufall)) 1))<br />
(define (monte-carlo versuche experiment)<br />
(define (iter versuche-uebrig versuche-erfolgreich)<br />
(cond ((= versuche-uebrig 0)<br />
(/ versuche-erfolgreich versuche))<br />
((experiment)<br />
(iter (- versuche-uebrig 1)<br />
(+ versuche-erfolgreich 1)))<br />
(else<br />
(iter (- versuche-uebrig 1)<br />
versuche-erfolgreich))))<br />
(iter versuche 0))<br />
46