BuK-Übung10 G2

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

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.

Loading

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.

Persönliche Werkzeuge