Funktion primitiv rekursiv < Komplex. & Berechnb. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Zeige, dass die Funktion:
f(n) = 0, falls n ungerade, 1, falls n gerade
primitiv rekursiv ist. |
Hallo,
ich komme mit dieser Funktion nicht zurecht. Meine Idee war folgendes Schema zu verwenden:
n -2 -2 -2 -2 ... -2
D.h. ich will von n immer 2 wegsubtrahieren bis sich der Wert 1 oder 0 ergibt. Je nachdem weiß ich sofort ob n gerade oder ungerade ist. Jetzt kann ich das nur schwer umsetzen, weil ich nicht weiß, wie viele Rekursionsaufrufe ich brauche... :(
So ungefähr stelle ich mir das vor: ... sub ( sub ( sub (n, 2) ) ) ...
Könnt ihr mir ein wenig helfen?
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo!
Wie genau meinst du das, daß du nicht weißt, wieviele Durchläufe das braucht? ich meine, von 10 kannst du 5x einen Wert von 2 abziehen, bis er 0 ist, bei 11 sind es auch 5 Schritte, bei 12 6 Schritte...
Und die Funktion sieht (in C) so aus:
int f(int x){
if(x==0) return 1;
if(x==1) return 0;
return f(x-2);
}
|
|
|
|
|
Hallo,
es geht nicht um eine Implementierung des gewollten in irgendeiner Programmiersprache, sondern um eine Funktion, welche primitiv rekursiv ist und die von mir angegeben Funktion berechnet. Insbesondere ist die Darstellung dieser durch primtiv rekursive Funktionen anzugeben...
|
|
|
|