Problem ze zrozumieniem funkcji

Problem ze zrozumieniem funkcji
S4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Na wstępie wspomnę, że się dopiero uczę i nie rozumiem pewnego kodu z odpowiedzi z kursu.
Kod wygląda następująco:

Kopiuj
def get_sequence(n):
    
    if n <= 0:
        return 1
    else:
        v = 0
        for i in range(n):
            v += 1 + (get_sequence(i - 1) + get_sequence(i))/2
        return v
 
print(get_sequence(25))

Nie rozumiem na jakiej zasadzie wykonywane są obliczenia jak funkcja wywołuje samą siebie.
Z góry dzięki za pomoc

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
2

Wywołanie samej siebie nazywa się rekurencja (rzadziej używane słowo rekursja), i w mieści się w praktykach programowania, jest normalne (choć nie promujemy tego zawsze)

Zawrócić uwagę, że rekurencja nie jest bezwarunkowa (program by wyleciał na przepełnieniu stosu), ale kontrolowana if 'em

Dodam, że ma swoje tradycje w matematyce, szeregi, te sprawy

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
S4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Ok, dzięki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.