Reducerea Schemelor de Recurenta

16
Reducerea schemelor de recurenta Burtea Bogdan-Florian Gr. 405

description

Reducerea Schemelor de Recurenta ppt

Transcript of Reducerea Schemelor de Recurenta

Page 1: Reducerea Schemelor de Recurenta

Reducerea schemelor de recurenta

Burtea Bogdan-FlorianGr. 405

Page 2: Reducerea Schemelor de Recurenta

Definitie

Recurenta in informatica este o metoda a carei solutii depinde de solutia altor probleme mai mici ale aceleasi probleme. Aceasta abordare poate fi aplicata mai multor tipuri de probleme. Recurenta este una dintre ideile principale ale informaticii.

Page 3: Reducerea Schemelor de Recurenta

• O recurenta contine un set de valori initiale• x0 = b0 x1 = b1 … xk = bk

• si o formula recursive• xk = a(xn-1, xn-2, … , x0) pentru n>k

• de la care putem calcula valoarea lui xn, pentru orice n>k, de la valoarile intiale

Page 4: Reducerea Schemelor de Recurenta

Functii recursive si algoritmi

Page 5: Reducerea Schemelor de Recurenta

O tactica obisnuita folosita este pentru a imparti o problema in probleme mai mici la fel cu cea originala. Rezolvand aceste probleme mai mici si combinand rezultatele, vom gasi un raspuns la problema mare.

Page 6: Reducerea Schemelor de Recurenta

Definita unei functii recursive contine una sau mai multe valori initiale pentru care functia returneaza un rezultat fara a folosi recurenta si unul sau mai multe cazuri pentru care programul foloseste recurenta. Un exemplu este functia factorial pentru care 0!=1 si pentru orice n>0, n!=n(n-1)!.

Page 7: Reducerea Schemelor de Recurenta

Un subprogram recursiv trebuie sa respecte urmatoarele reguli:• subprogramul trebuie sa poata fi executat,

celputin intr-o situatie, fara a se autoapela;• subprogramul recursiv se va autoapela intr-un

mod in care se tinde spre ajungerea in situatia de executie fara autoapel.

Page 8: Reducerea Schemelor de Recurenta

Tipuri de recurenta

Page 9: Reducerea Schemelor de Recurenta

Recurenta simpla si recurenta multipla

Recurenta ce contine o singura apelare a propriei functii este cunoscuta ca recurenta simpla, pe cand recurenta ce contine mai multe apelari a propriei functii este cunoscuta ca recurenta multipla. Exemple standard ale recurentei simple ar fi cautarea lineara sau functia factorial, pe cand un exemplu standard al recurentei multiple ar fi sirulul lui Fibonacci.

Page 10: Reducerea Schemelor de Recurenta

Recurenta indirecta

Exemplele de baza ale recurentei folosesc recurenta directa, unde o functie se apeleaza singura. Recurenta indirecta apare atunci cand o functie este apelata nu de ea, ci de o alta functie.

Page 11: Reducerea Schemelor de Recurenta

Programe recursive

Page 12: Reducerea Schemelor de Recurenta

Factorial

Formula:

Page 13: Reducerea Schemelor de Recurenta

Cod:Fact=1;For(i=1;i<=n;i++){Fact=fact*i;} Cod recursiv:Int fact(int n){if n=0 return 1;else return n*fact(n-1);}

Page 14: Reducerea Schemelor de Recurenta

Sirul lui Fibonacci

Formula:

Valori initiale:

Page 15: Reducerea Schemelor de Recurenta

Cod recursiv:int fib(int x) { if (x == 0) return 0; if (x == 1) return 1; return fib(x-1)+fib(x-2);}

Page 16: Reducerea Schemelor de Recurenta

O reducere a acestei scheme de recurenta ar fi aceasta formula: