BuK-Übung10 G2
Aus ProgrammingWiki
Inhaltsverzeichnis |
Primitiv rekursive zahlentheoretische Funktionen
Aufgabe
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
Potenzfunktion:
Fakultät:
Monus-Operation:
Abstandsfunktion:
Signum-Funktion:
Konstante Funktionen
Aufgabe
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 Nachfolgerfunktion S wird a mal auf ausgeführt
Polynom-Funktionen
Aufgabe
Begründen Sie, weshalb Polynome mit natürlichen Koeffizienten primitiv rekursiv sind.
Beispiel: .
Lösung
Die Polynome enthalten die Operationen Addition, Multiplikation und Potenz. Da die Operationen primitiv rekursiv sind, sind auch Polynome primitiv rekursiv.

Rechenoperationen
Aufgabe
Folgen Sie dem Schema der rekursiven Definitionen der elementaren binären Rechenoperrationen (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.
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
Eine halbwegs ausgefüllte Tabelle kann unter [1] gefunden werden.
Die Funktionswerte für nr = 1 werden immer vom Feld rechts oberhalb AP(0,m+1) verwendet. Es ergibt sich:
Für nr = 2 werden die Funktionswerte AP(1,2*m+1) verwendet. Eingesetzt ergibt sich:
Sudan-Funktion
Aufgabe
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.
Lösung
Um die Funktion besser in Scheme umzusetzten wird das Indice als erster Parameter der Funktion festgelegt.
Der Funktionswert von ist 10228.