Conţinutul principal
Biblioteca de informatică
Curs: Biblioteca de informatică > Unitatea 1
Lecția 6: Recursivitate- Recursivitatea
- Funcția factorial
- Provocare: factorialul iterativ
- Factorialul recursiv
- Provocare: factorial recursiv
- Proprietățile algoritmilor recursivi
- Folosirea recursivității pentru a determina dacă un cuvânt este sau nu palindrom
- Provocare: este un șir palindrom?
- Provocare: puteri recursive
- Recursie multiplă cu triunghiul lui Sierpinski
- Îmbunătățirea eficienței funcțiilor recursive
- Proiect: artă recursivă
© 2023 Khan AcademyCondiții de utilizarePolitica de confidenţialitateNotificare Cookie
Factorialul recursiv
Pentru valorile pozitive ale lui hai să scriem ca fiind produsul tuturor numerelor de la până la 1: = . Dar să observăm că este de fapt ; așadar, putem spune că . Ce zici? L-am scris pe ca produs având unul dintre factori . Deci îl putem calcula pe determinând mai întâi și înmulțindu-l apoi cu . Poți calcula funcția factorial de prin calcularea factorialului de . Putem spune că problema este o subproblemă a calculării lui !.
Hai să luăm un exemplu: calcularea lui 5!.
- Putem calcula 5! înmulțind
. - Acum trebuie să rezolvăm subproblema calculării lui 4!, pe care o putem privi ca fiind
!. - Dar acum trebuie să calculăm 3!, care este
. - Avem 2!, care este
. - Ne trebuie 1!. Putem spune că 1! este egal cu 1, deoarece este produsul tuturor numerelor de la 1 la 1. Sau, am putea aplica formula conform căreia
. Să aplicăm formula. - Am stabilit că 0! este egal cu 1.
- Acum putem să calculăm
. - Știind că
, putem calcula . - Mai departe, pentru că
,putem calcula . - Înlocuind
, putem calcula . - În sfârșit, pentru că
, putem finaliza calculul .
Avem încă o modalitate de a calcula valoarea lui pentru toate numerele naturale:
- Dacă
, atunci spunem că . - Altfel,
trebuie să fie pozitiv. Rezolvăm subproblema calculării lui , înmulțim rezultatul cu și concluzionăm că este egal cu rezultatul acestui produs.
Când calculăm în acest mod, mai întâi apelăm primul caz, cel pentru care știm direct răspunsul, caz pe care îl numim caz elementar, apoi apelăm al doilea caz, cel pentru care trebuie să calculăm aceeași funcție dar pentru o altă valoare; acesta se numește caz recursiv.
Acest conținut este o colaborare a profesorilor Thomas Cormen și Devin Balkcom, de la Dartmouth Computer Science, cu echipa de elaborare a curriculumului de informatică de la Khan Academy. Conținutul este licențiat CC-BY-NC-SA.
Vrei să te alături conversației?
Nici o postare încă.