Problem ze zrozumieniem funkcji

Problem ze zrozumieniem funkcji
S4
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • 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

edytowany 1x, ostatnio: cerrato
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 miesiące
  • 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


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
lion137
  • Rejestracja:ponad 8 lat
  • Ostatnio:minuta
  • Postów:4949
2

S4
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • 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.