Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.5. REKURSIVE FUNKTIONEN 111<br />
π k i (n1, n2, . . .,nk) = ni.<br />
Für k = 2 gibt es z.B. zwei Projektionen<br />
π2 1 (n, m) = n und π2 2 (n, m) = m.<br />
Für k = 1 ist π1 1(n) = n die Identitätsfunktion.<br />
Def<strong>in</strong>ition. Die folgenden Funktionen heißen Basisfunktionen:<br />
1. die Nachfolgerfunktion succ (mit succ(n) = n + 1)<br />
2. die Nullfunktion K0 (mit dem e<strong>in</strong>zigen Wert 0) und<br />
3. die Projektionen π k i<br />
für alle 1 ≤ i ≤ k, k = 1, 2, 3, . . ..<br />
Aus den Basisfunktionen können weitere Funktionen mit Hilfe der Verknüpfung<br />
def<strong>in</strong>iert werden:<br />
Beispiel 1. Konstante Funktionen. Die konstante Funktion K1 entspricht der Verknüpfung<br />
von K0 mit succ:<br />
K1 = succ(K0).<br />
Analog<br />
K2 = succ(K1) = succ(succ(K0))<br />
usw.<br />
Beispiel 2. Die Funktion f(n) = n + 2 für alle n ∈<br />
succ mit sich selbst:<br />
f(n) = succ(succ(n)).<br />
ist die Verknüpfung von<br />
Beispiel 3. Die Funktion g(n, m) = m+2 (für alle n, m ∈ ) ist e<strong>in</strong>e Verknüpfung<br />
der zweiten Projektion π2 2 (n, m) (die n wegfallen lässt) und der Funktion f aus<br />
Beispiel 2:<br />
g(n, m) = f(π2 2(n, m)) = succ(succ(π2 2(n, m)).<br />
Bemerkung 1. 1. Im Allgeme<strong>in</strong>en def<strong>in</strong>ieren wir die Verknüpfung mehrstelliger<br />
Funktionen wie üblich: falls<br />
f : k → (k ≥ 1)<br />
e<strong>in</strong>e k-stellige Funktion ist und<br />
g1, . . .,gk : m → (m ≥ 0)<br />
k m-stellige Funktionen s<strong>in</strong>d, ist die Verknüpfung von f mit g1, . . . , gk die<br />
m-stellige Funktion<br />
h :<br />
die durch<br />
m → ,<br />
h(n1, . . . , nm) = f(g1(n1, . . . , nm), g2(n1, . . . , nm), . . .,gk(n1, . . . , nm))<br />
für alle (n1, . . .,nm) auf m def<strong>in</strong>iert wird.<br />
2. Neben der Verknüpfung wollen wir die sogenannte primitive Rekursion verwenden,<br />
um neue Funktionen zu erzeugen. Zum Beispiel lässt sich die Fakultätsfunktion<br />
f(n) = n! mit Hilfe primitiver Rekursion durch die Multiplikation<br />
h(n, m) = n ∗ m und den Initialwert 1 = f(0) wie folgt def<strong>in</strong>ieren:<br />
f(0) = 1;<br />
f(n + 1) = h(n, f(n)) = n ∗ f(n).<br />
Die Def<strong>in</strong>ition e<strong>in</strong>er e<strong>in</strong>stelligen Funktion f(n) durch primitive Rekursion hat<br />
zwei Bestandteile: e<strong>in</strong>e Konstante k und e<strong>in</strong>e zweistellige Funktion h(n, m).<br />
Dann def<strong>in</strong>iert man<br />
f(0) = k<br />
und<br />
f(n + 1) = h(n, f(n)).