funkcja rekursywna

0

Witam czy potrafiłby ktoś mi to wytłumaczyć jak to działa?
I jaki będzie wynik. Z góry dzięki.

Dana jest rekursywna definicja funkcji Fun(x,y), gdzie SUCC(y)= y+1.

Fun(0,y)=y+2,
Fun(x+1,y)= SUCC(Fun(x, SUCC(y)))

Znajdź: Fun(1,4); Fun(3,2);

0
def incr(n):
	return n + 1

def func(x, y):
	if x == 0: return y + 2
	else:
		return incr(func(x - 1, incr(y)))

print(func(1, 4)) # -> 8
print(func(3, 2)) # -> 10

Każde x + 1 wywołań rekurencyjnych inkrementuje y o 2; stąd 10 = 2 + 3 * 2 + 2.

1 użytkowników online, w tym zalogowanych: 0, gości: 1