AuK/Probabilistische Algorithmen SS11/

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Scheme</language>
==Übungen==

1. Implementieren Sie einen Generator für Pseudozufallszahlen nach der Kongruenzmethode.




* <popup name="Lösung"> <code>
(define c 262144)

(define zufallszahlen
  (lambda (z)
    (let ((a 16807)(b 0))
      (if (eq? z 0) 
          4567
          (modulo (+ (* a (zufallszahlen (- z 1))) b) c)))))</code></popup>


2. Erstellen Sie ein probabilistisches Quicksort, welches das Pivotelement zufällig wählt.




* <popup name="Lösung"> </popup>



3. Arbeiten Sie mit dem Primzahltest nach Fermat .


3.1. Teste die Zahlen <math>147, 286 , 313</math> ,und <math>353</math>  mit der <math>Basis \ 2</math>


3.2. Teste die Zahlen desweiteren mit <math>Basis \ 3</math>


* <popup name="Lösung"></popup>
 

[http://www.arndt-bruenner.de/mathe/java/rechnergz.htm Rechner für große Zahlen]