Matematică și Informatica         

Recursivitatea este un mecanism general de elaborare a algoritmilor. O funcție se numește recursivă daca ea se autoapelează, fie direct (în definiția ei, se face apel la ea însăși), fie indirect (funcția X apelează funcția Y, care apelează funcția X).

Recursivitatea a aparut din necesități practice date de transcrierea directă a formulelor matematice recursive. Apoi, acest mecanism a fost extins, fiind utilizat în elaborarea multor algoritmi.

Exemple de șiruri recurente:

– progresie aritmetica:   x0= a ,   xn= xn-1 + p, pentru n>0

–sirul lui Fibonacci:     F0=1,     F1=1,     Fn= Fn-1 + Fn-2  pentru n>1

Algoritmi matematici recursivi:

Definiția recursivă a lui n ! este :                   Funcția recursivă se va scrie astfel:

                                int factl(int n)

                                                                 {  if(n==0)

                                                                               return 1;

                                                               else 

                                                                                                 return factl(n-1)*n; }

 

Suma cifrelor unui număr     :                         Funcția recursivă se va scrie astfel:

            int suma (int n)

                                                                      { if (n!=0)

                                                                                                              return n%10+suma(n/10);

                                                                     else

                                                                                       return 0; }

Al n-lea termen din șirul lui Fibonacci  :         Funcția recursivă se va scrie astfel:

                                                    unsigned int fibonacci(unsigned n)

                                                           { if(n>2)

                                                                                                                          return fibonacci(n-1)+fibonacci(n-2);

                                                           else

                                                                                    return 1; }

 

                                    Fizică

                                                  
 
Unda transversală într-o coardă elastică este și ea un exemplu de recursivitate. Plecând din capătul liber al corzii (întâlnirea primul autoapel), aceasta parcurge treptat drumul până la capătul fix al corzii (condiția de adâncime). La întâlnirea obstacolului, unda se va întoarce spre capătul liber, astfel având loc reîntoarcerea în programul inițial.
 
                                 
 
 
Acest fenomen este foarte uşor de observat în cazul unei maşini care trece prin dreptul nostru. Frecvenţa undelor sonore se va modifica pe măsură ce maşina se apropie şi apoi se îndepărtează de noi.
La apropierea de ureche, intensitatea sunetului scade, acest lucru semănând cu autoapelurile efectuate în recursivitate până la atingerea condiției de adâncime. Odată trecut de urechea umană sunetul crește în intensitate. 
                                                                                                         

 

 

 

Contact

Recursivitate

© 2015 Rusu Ionela

Creați un site gratuitWebnode