Ackermann Funktion theo-Inf?

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

RedDevil1982 
Beitragsersteller
 08.01.2024, 16:06

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)

0
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.

1