BuK-Übung10 G1

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Loading

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

Simaschi Ack.PNG

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.


Lösung

Persönliche Werkzeuge