Entdecken Sie eBooks
Kategorien
Entdecken Sie Hörbücher
Kategorien
Entdecken Sie Zeitschriften
Kategorien
Entdecken Sie Dokumente
Kategorien
4. Übung
Abgabe bis 19.11.2018, 10:00 Uhr
Zur Vereinfachung nehmen Sie bitte an, dass der Wertebereich des Rückgabetyps long un-
beschränkt ist, dass also kein Überlauf auftreten kann. Bitte strukturieren Sie Ihren Beweis
so, dass er leicht nachvollziehbar ist – geben Sie insbesondere alle Induktionsanfänge bzw.
Induktionsvoraussetzungen explizit an.
b) Beweisen Sie, dass die Methode immer terminiert. Geben Sie dazu eine Terminierungsfunk-
tion an und begründen Sie kurz Ihre Wahl.
Geben Sie Ihre Lösung als Induktionsbeweis.pdf über EST ab.
-1-
Algorithmen und Datenstrukturen FAU, Informatik 2, AUD-Team
Wintersemester 2018/19 aud@i2.cs.fau.de
ACHTUNG – WICHTIG:
I Rufen Sie gleich zu Beginn JEDER Ihrer Methoden unbedingt einmal p.kontrolle() auf.
Dieser Aufruf dient der automatischen Überprüfung/Bewertung Ihrer Implementierung!
I Betrachten Sie nur die Eingabe stoff ≤ 0 als (primitiven) Basisfall und überlegen Sie sich
das Induktionsprinzip für die restliche Rekursion!
I Beachten Sie, dass stoff und preise.length nicht gleich sein müssen!
I Sie dürfen KEINE Klassen oder Methoden aus der Java-API verwenden (auch NICHT
System.out.println)! Ihre Klasse muss genau die oben genannten Methoden haben. Sie
dürfen also keine weiteren Methoden oder Attribute (auch keine privaten) deklarieren.
-2-
Algorithmen und Datenstrukturen FAU, Informatik 2, AUD-Team
Wintersemester 2018/19 aud@i2.cs.fau.de
-3-
Algorithmen und Datenstrukturen FAU, Informatik 2, AUD-Team
Wintersemester 2018/19 aud@i2.cs.fau.de
c) Erstellen Sie solveIt(rc, values, next, goal, city) als Variante von solveMem,
die das zweidimensionale und methodenlokale memoization-Feld iterativ (Bottom-Up) befüllt.
Überlegen Sie, in welcher Reihenfolge Sie das Feld bearbeiten müssen, damit Ihnen bei jedem
Eintrag alle nötigen Daten schon vorliegen. Bestimmen Sie die Basisfälle und an welcher Po-
sition im Feld das Endergebnis steht. Iterative Top-Down-Implementierungen sind verboten.
ACHTUNG – WICHTIG:
I Rufen Sie gleich zu Beginn JEDER Ihrer Methoden unbedingt einmal rc.check() auf. Die-
ser Aufruf dient der automatischen Überprüfung/Bewertung Ihrer Implementierung!
I Sie dürfen KEINE Klassen oder Methoden aus der Java-API verwenden (auch NICHT
System.out.println)! Ihre Klasse muss genau die oben genannten Methoden haben. Sie
dürfen also keine weiteren Methoden oder Attribute (auch keine privaten) deklarieren.
25 EP + 35 GP = 60 Punkte
-4-