Conţinutul principal
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ă
© 2024 Khan AcademyCondiții de utilizarePolitica de confidenţialitateNotificare Cookie
Funcția factorial
Pentru primul nostru exemplu de recursivitate, hai să ne uităm cum se calculează funcția factorial. Notăm factorialul lui cu . Reprezintă produsul numerelor întregi de la 1 până la . De exemplu, 5! este egal cu , adică 120. (Observație: Ori de câte ori vorbim despre funcția factorial, semnul exclamării se referă la factorial, nu la accentuare.)
Probabil te întrebi de ce ar trebui să ne pese de funcția factorial. Este foarte utilă dacă vrem să calculăm în câte moduri se pot aranja obiecte sau în câte moduri se pot combina. De exemplu, în câte moduri se pot aranja obiecte? Avem variante pentru primul obiect. Pentru fiecare dintre aceste variante, ne rămân variante pentru al doilea obiect, adică variante de a aranja primele două obiecte. Apoi, pentru fiecare dintre acestea, avem variante pentru al treilea obiect; astfel că avem variante pentru primele trei obiecte, în ordine. Continuăm tot așa, până când ne mai rămân doar două obiecte, apoi doar unul singur. În total, avem modalități de ordonare a obiecte. Ei bine, acest produs este tocmai ( factorial), numai că s-a scris produsul începând de la până la 1, în loc de a-l scrie de la 1 către .
O altă utilitate a funcției factorial reprezintă posibilitatea de a calcula în câte moduri putem alege obiecte dintr-o colecție. De exemplu, să presupunem că mergi într-o excursie și vrei să alegi ce tricouri vei lua. Să zicem că tu ai tricouri, dar nu au loc în bagaj decât . În câte moduri poți alege tricouri dintr- colecție de tricouri? Răspunsul (pe care nu îl vom demonstra aici) este tocmai . Deci, funcția factorial este chiar foarte utilă. Poți învăța mai multe despre permutări și combinări aici, deși nu este absolut necesar să le înțelegi pentru a implementa un algoritm factorial.
Funcția factorial este definită pentru toate numerele pozitive, începând cu 0. Oare 0! ce valoare are putea să aibă? Este produsul tuturor numerelor mai mari sau egale cu 1 și mai mici sau egale cu 0. Dar nu există asemenea numere întregi. De aceea, îl definim pe 0! ca fiind egal cu elementul neutru față de înmulțire, adică 1. (Definind 0! = 1 se potrivește bine cu formula pentru alegerea a obiecte dintr-un total de obiecte. Să presupunem că vrem să vedem în câte moduri pot fi alese obiecte dintr-un total de obiecte. Așadar, folosind formula ar trebui să avem 1. Dar este 0!, deci ar trebui să fie egal cu 1. Dacă simplificăm pe de la numărător și numitor, vedem că ar trebui să fie 1, ceea ce se întâmplă pentru că 0! este egal cu 1.)
Deci, acum avem o cale de a-l înțelege pe . Este egal cu 1 când și este egal cu când este pozitiv.
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ă.