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);
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);
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
.