BuK-Übung10 G1
Aus ProgrammingWiki

Inhaltsverzeichnis |
Primitiv rekursive zahlentheoretische Funktionen
Aufgabenstellung
Weisen Sie nach, dass die folgenden zahlentheoretischen Funktionen primitiv rekursiv sind. Dabei dürfen Sie bereits auf das Ergebnis der folgenden Aufgabe zurückgreifen.
- Vorgängerfunktion
- Potenzfunktion
- Fakultät
- Monus-Operation
- Abstandsfunktion
- Signum-Funktion
Lösung
Vorgängerfunktion:
Potenzfunktion:
Fakultät:
Monus-Operation:
Abstandsfunktion:
Signum-Funktion:
Konstante Funktionen
Aufgabenstellung
Unsere Definition der Menge der primitiv rekursiven Funktionen verwendet die Nullfunktionen als Basisfunktionen. Manche Quellen nehmen alternativ die konstanten Funktionen als Basisfunktionen auf. Zeigen Sie mit unserer Definitionsform, dass die konstanten Funktionen , mit
, primitiv rekursiv sind.
Lösung
(Die Funktion S wird a-mal aufgerufen.)
Beispiel:
Polynom-Funktionen
Aufgabenstellung
Begründen Sie, weshalb Polynome mit natürlichen Koeffizienten primitiv rekursiv sind.
Beispiel:
Lösung
Es kann gezeigt werden, dass die Addition, die Multiplikation und die Potenzfunktion primitiv-rekursiv sind. Die Polynom-Funktion kann durch Verwendung dieser drei Funktionen durch Substitution und Rekursion gebildet werden. Da dies möglich ist und die Funktionen wie bereits erwähnt primitiv-rekursiv sind, ist auch die Polynom-Funktion primitiv-rekursiv.
Rechenoperationen
Aufgabenstellung
Folgen Sie dem Schema der rekursiven Definitionen der elementaren binären Rechenoperationen (Addition (1), Multiplikation (2), Potenzieren (3), ...) und entwickeln Sie eine entsprechende Scheme-Prozedur op. Verwenden Sie add1 für die Nachfolger- und sub1 für die Vorgängerfunktion.
Aufrufbeispiel: (op 3 10 2) liefert 1024.
Lösung
Ackermann-Peter-Funktion
Aufgabe
Die AP -Funktion ist eine total berechenbare Funktion, die jedoch nicht primitiv rekursiv ist. Sie ist wie folgt definiert.
Füllen Sie die folgende Tabelle aus, soweit es eben geht.
Lösung
Aufgabe
Geben Sie eine effizientere Implementation für AP an, indem Sie herausfinden, wie sich die Tabelleneinträge in Zeile i aus denen in Zeile i−1 gewinnen (ablesen) lassen. Benutzen Sie außerdem memoizing.
Lösung
Hier die Ackermann-Peter-Funktion mit Memoizing.
Sudan-Funktion
Aufgabenstellung
Der rumänische Mathematiker Gabriel Sudan (14.04.1899 - 22.06.1977) – wie Ackermann ebenfalls ein Schüler von David Hilbert – hat 1927 eine total berechenbare jedoch nicht primitiv rekursive Funktion publiziert. Sie ist folgendermaßen definiert.
Berechnen Sie und
für selbstgewählte Argumente.