funkcja rekursywna

Odpowiedz Nowy wątek
2019-06-01 17:46
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);

Pozostało 580 znaków

2019-06-01 18:54
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.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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