Ackermann Funktion theo-Inf?
Wie kommt man hier darauf, das für x = 1 -> y + 2 zurückgegeben wird?
Wenn x = 1 ist, gehe ich in return ackermann(1-1, ackermann(1, y-1));
=> Wird jetzt hier zuerst die innere ackerman(x, y-1 ausgeführt)
oder die äußere ackermann(x-1, ackermann(x, y-1))?
1 Antwort
Wird jetzt hier zuerst die innere ackerman(x, y-1 ausgeführt) oder die äußere ackermann(x-1, ackermann(x, y-1))?
Die innere zuerst. Die äußere kann erst ausgeführt werden wenn alle Argumente ausgerechnet sind.
Wie kommt man hier darauf, das für x = 1 -> y + 2 zurückgegeben wird?
Hier ein Beispiel:
x = 1, y = 1
ackermann(1,1) = ackermann(0, ackermann(1,0))
ackermann(1,0) = ackermann(0,1) = 2
// Also:
ackermann(1,1) = ackermann(0,2) = 3 = y + 2
aperfect10
08.01.2024, 16:21
@RedDevil1982
Weder x noch y sollten negativ sein. Das ist wahrscheinlich auch der Grund weshalb x und y vom Typ 'unsigned int' sind.
Alles klar. Danke! Jetzt hab ich es verstanden. Es werden hier Annahmen für y getroffen, so macht es Sinn. Kann y auch negativ werden?
z. B. x=1, y=0
return ackermann(0, ackermann(0 -1)