Sobes.tech
Junior — Middle

Selgitage rekursiivsete kõnede kontseptsiooni programmeerimises

sobes.tech AI

Vastus AI-lt

Rekursiivne kõne on olukord, kus funktsioon kutsub iseennast üles, et lahendada ülesannet. Tavaliselt kasutatakse rekursiooni keeruka ülesande jagamiseks lihtsamateks samatüüpi alatoiminguteks.

Näide: arvutada numbri n faktoriaal (n!) — kõigi arvude korrutis 1-st kuni n-ni.

def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n - 1)

Siin kutsub funktsioon factorial iseennast väiksema argumendiga, kuni jõuab põhjuppunktini (n == 0 või 1), seejärel hakkab ta tulemusi tagastama kutsungite ahelas.

Oluline on, et rekursiivsel funktsioonil oleks põhjuppunkt, vastasel juhul on kutsed lõpmatud ja põhjustavad virna ülekülluse.