Tarkvara Arendusprotsess Programmeerimine Multimeedia

Rekursioon (Recursion)

Mis on rekursioon?

Kaks peamist osa

Iga korrektne rekursiivne funktsioon peab koosnema kahest osast:

  1. Baasjuht (Base case): Tingimus, mille puhul rekursioon lõpetatakse ja funktsioon tagastab väärtuse ilma iseennast uuesti välja kutsumata. See väldib lõpmatut kordust.
  2. Rekursiivne samm: Funktsioon kutsub end välja uute parameetritega, mis on "lähemal" baasjuhule.

Näide: Faktoriaal

Matemaatiline definitsioon: n! = n * (n - 1)! ja 0! = 1.

def factorial(n):
    if n == 0:  # Baasjuht
        return 1
    return n * factorial(n - 1)  # Rekursiivne samm
        

Näide: Fibonacci jadad

Jada, kus järgmine arv on kahe eelmise summa: 0, 1, 1, 2, 3, 5, 8, 13...

def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)
        

Miks kasutada rekursiooni?

Ohud ja piirangud

Pythonis on rekursiooni sügavuse limiit tavaliselt 1000 väljakutset.

Rekursioon vs Iteratsioon

Kokkuvõte

Next topic