Blatt 2

Werbung
Institut fur Informatik
der Universitat Munchen
Dr. Jan Johannsen
Jan Homann
WS 2007/08
30. Oktober 2007

Ubungen
zum Repetitorium Informatik 1
Blatt 2
Aufgabe H-1 (5 Punkte): In den Gefangnissen von San Diego County wird bei guter
Fuhrung des Straftaters ein Teil der Haftstrafe zur Bewahrung ausgesetzt. Das Strafma
veringert sich dabei um 2 Tage, fur je 4 Tage die der Gefangene im Gefangnis gewesen ist.
Zum Beispiel musste ein Gefangener der zu 12 Tagen verurteilt wurde, bei guter Fuhrung
lediglich 8 Tag im Gefangnis verbringen. Bei einer Strafe von 9 Tagen kame er nach 7
Tagen frei. (Man kann also nicht einfach 23 der ursprunglichen Strafe berechnen.)
Der Sheri von San Diego muss naturlich ermitteln konnen wann er einen Gefangenen, der
zu n Tagen Haft verurteilt wurde, entlassen kann. Er versteht aber lediglich die Funktionen
<, =, +, −, ∗ sowie Rekursion.
Verwenden Sie Pseudocode um einen rekursiven Algorithmus zu entwerfen mit dem der
Sheri die Haftstrafe bei guter Fuhrung berechnen kann. Geben Sie Ihre Losung als pdfoder Textdatei mit dem Namen h-1.txt bzw. h-1.pdf ab.
Aufgabe H-2 (6 Punkte):
Betrachten Sie die folgenden rekursiven Funktionen f1 , f2 und f3 . Dabei bezeichnet fur
n, k ∈ N, n mod k den Rest und n div k den Quotient der Division n ÷ k.
f1(x) = if x = 1 then 0
else 1 + f1(x div 2)
f2(n) = if n
if n
if n
else
= 0
= 1
mod
not
then true
then false
2 = 0 then f2(n div 2)
f2(n div 2)
f3(b,x,t) = if x = 0 then t
if t = 1 then f3(b,x-1,b)
else f3(b,x,t-1)+f3(b,x-1,b)
Auf welchen Eingaben n ∈ N terminieren diese Funktionen? Was ist ihr Wertebereich?
(D.h. welche moglichen Werte konnen sie annehmen?) Welche Funktionen werden von
f1 , f2 und f3 berechnet? Geben Sie Ihre Losung als pdf- oder Textdatei mit dem Namen
h-2.txt bzw. h-2.pdf ab.
Hinweis: f1 und f3 sind bekannte mathematische Funktionen. Bei f2 geht es um die
Binardarstellung der Zahl n. Vielleicht hilft es Ihnen wenn sie die Werte der Funktionen
fur Beispieleingaben betrachten. Sie konnen dafur die Datei 2-1.sml auf der Homepage
benutzen und sie mit sml 2-1.sml in den SML-Interpreter laden. Der Aufruf f1(4);
liefert dann zum Beispiel den Wert von f1 (4).
Aufgabe H-3 (5 Punkte): In der Vorlesung wurde der Datentyp Liste zusammen mit
den Funktionen erstes : Liste(M) → M, rest : Liste(M) → Liste(M) und laenge :
Liste(M) → N vorgestellt.
Die rekursive Funktion diff : Liste(N) × Liste(N) → N ist wie folgt deniert.
diff(l1,l2) = if laenge(l1) > 0 then
diff(rest(l1),l2) + erstes(l1)
if laenge(l2) > 0 then
diff(l1,rest(l2)) - erstes(l2)
else 0
Beweisen Sie, dass diff(l1 , l2 ) fur alle Listen l1 und l2 terminiert und dass folgende Gleichung gilt
diff([a1 , . . . , an ], [b1 , . . . , bm ]) =
n
X
ai −
i=1
m
X
bi
j=1
Geben Sie Ihre Losung als pdf- oder Textdatei mit dem Namen h-3.txt bzw. h-3.pdf
ab.
Aufgabe P-6: Sei log der Logarithmus zur Basis 2 und sei p2(n) eine Boolsche Funktion
die genau dann true liefert wenn n ∈ N eine Zweierpotenz ist. Deniere log(0) (n) = n
und log(k) (n) = log(k−1) (dlog(n)e) fur k > 0.
Der iterierte Logarithmus log∗ ist deniert durch log∗ (n) := min{ i | log(i) (n) = 1 }.
log∗ kann durch die rekursive Funktion iterlog wie folgt berechnet werden.
iterlog(n) = if n=1
then 0
if p2(n) then iterlog(log(n))+1
else iterlog(n+1)
Beweisen Sie, dass iterlog(n) fur alle n ≥ 1 terminiert und korrekt ist, also iterlog(n) =
log∗ fur alle n ≥ 1 gilt.
Aufgabe P-7: Eine nat
urliche Zahl n P
heit
vollkommen
falls sie identisch mit der
Summe ihrer echten Teiler ist, also wenn j<n,j|n j = n.
6 ist die kleinste vollkommenen Zahl, denn es gilt 1+2+3 = 6. Es ist unklar ob es unendlich
viele vollkommene Zahlen gibt und ob ungerade vollkommene Zahlen existieren.
Helfen Sie bei der Klarung dieser oenen Fragen indem Sie einen Algorithmus in Pseudocode entwerfen, der f
ur eine gegebenen naturliche Zahl entscheidet ob sie vollkommen ist.
Verwenden Sie lediglich die Grundfunktionen <, =, +, −, ∗ sowie einen Test auf Teilbarkeit
(j|n oder n mod j = 0).
Hinweis: Sie konnen auch Hilfsfunktionen denieren.
Abgabe der Hausaufgaben u
ber UniWorx bis spatestens Dienstag, 06.11.2007, 14
Uhr. Besprechung am Dienstag, 06.11.2007.
Herunterladen