miércoles, 6 de mayo de 2015

MASTERY 21 Use of recursion for repetitive algorithms

USO DE RECURSIÓN PARA ALGORITMOS REPETITIVOS

Ya hemos visto como funcionan los loops. Una cosa interesante de ellos es que pueden utilizarse a sí mismas. Para dejar más claro esto es que son algoritmos repetitivos y su función es definirse y utilizarse a sí misma. En Python se puede hacer esto. Un gran ejemplo de ello es la Factorial de la WSQ09.


   n! =
   1 \times 2 \times 3 \times 4 \times ... \times (n-1) \times n
.

   n! =
   \prod_{k=1}^n k
.

   n! =
   \begin{cases}
      1              & \text{si, } n = 0 \\
      (n-1)!\times n & \text{si, } n > 0
   \end{cases}
Vemos que dentro de la función de la Factorial, en la línea 7 se llama sí mismo. Esto sirve para definir "n!" luego de haber puesto las condiciones anteriores. Básicamente, es como un loop. También se llamó esa función dentro de otro loop y el output sería esto:
Otro gran ejemplo sería el de Gran Común Divisor en el WSQ12: 
Fórmula de Éuclides: 
GCD(a, a) = a
GCD(a, b) = gcd(a - b, b) si a > b
GCD(a, b) = gcd(a, b - a) si a < b

Se ve que en la línea 5 y en la línea 8 se llama la función GCD() con diferentes parámetros. Es otro loop y el output sería esto:
No en todos los casos se puede utilizar algoritmos recursivos, todo depende de qué tipo de problema estás enfrentando.

No hay comentarios.:

Publicar un comentario