Sobes.tech
Intern

Czym jest rekurencja?

sobes.tech AI

Odpowiedź od AI

Rekurencja to proces, w którym funkcja wywołuje samą siebie. W programowaniu funkcja rekurencyjna to funkcja, która wywołuje siebie bezpośrednio lub pośrednio. Aby uniknąć nieskończonej pętli, funkcja rekurencyjna musi mieć przypadek bazowy, w którym przestaje się wywoływać.

Przykłady zastosowania:

  • Przechodzenie przez struktury danych (np. drzewa).
  • Rozwiązywanie problemów, które można podzielić na mniejsze podproblemy tego samego typu (np. obliczanie silni).

Przykład obliczania silni za pomocą rekurencji:

def factorial(n):
  # Przypadek bazowy: silnia z 0 to 1
  if n == 0:
    return 1
  # Przypadek rekurencyjny: silnia z n = n * silnia z (n-1)
  else:
    return n * factorial(n - 1)

# Przykład użycia
result = factorial(5)
# wynik będzie 120

Wady rekurencji:

  • Może zużywać dużo pamięci z powodu stosu wywołań.
  • Może być mniej wydajna w porównaniu do rozwiązań iteracyjnych dla niektórych problemów.
  • Może prowadzić do przepełnienia stosu przy głębokich wywołaniach rekurencyjnych.