AuK/Probabilistische Algorithmen SS09
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
===Einführung in proballistische Algorithmen===
[[Einführung in probalistische Algorithmen]]
[["Zufallszahlen"]]
===Algorithmen===
[[Las-Vegas-Algorithmen]]
====Monte-Carlo-Algorithmus Gruppe 2====
=====Multimengenvergleiche=====
<code>
(define random
(lambda (n)
(cond (= 0 (modulo n 124)) n)
(else
(random (modulo (+(* 15485867 n) 32452843 ) 13)))))
</code>
<eval>()</eval>
=====Buffons Nadel=====
===Ausblick===
====Genetische Programmierung====
[[Schwarmalgorithmen]]
===Aufgaben===
===1===
Implementieren Sie einen Generator für Pseudozufallszahlen nach der Kongruenzmethode. (Buch S. 124)
<math>z_{n}=(a*z_{n-1}+b)mod\ c</math>
mit
<math>z_0=4567\\a=9749\\b=0\\c=2^{18}=262144</math>
<code>
(define seed1 12347899 )
(define zf
;Kongruenzmethode in Scheme
(lambda ()
(let ((seed2 (modulo (+ (* 9749 seed1) 0) 262144)))
(set! seed1 seed2)
seed2)))
</code>
<eval>(zf)</eval>
(Um einen zufälligen Startwert anzunehemn gibt es zwar auch Sprachelemente in Scheme, jedoch funktionieren diese hier in der Wiki nicht.)
[[Aufgabenverteilung]]
===Quellen===
http://www.riskglossary.com/link/monte_carlo_method.htm
Oliver Lau "Faites vos jeux! - Zufallszahlen erzeugen, erkennen und anwenden" (c't 2009, Heft 2)
http://www.addison-wesley.de/Service/Krueger/kap12006.htm