Está en la página 1de 12

Unidad 4

1 //Escenario
Escenario28
Lectura Fundamental

Recursión
Etapas de un plan de comunicación
estratégica

Contenido

1 Definición de recursión

2 Funciones matemáticas recursivas

3 Ejemplos

4 Ejercicios propuestos

Palabras clave:
Recursión, función, caso, finito.
1. Definición de recursión
Una entidad se llama recursiva si se define en términos de sí misma. En la naturaleza y en las
construcciones humanas, tanto físicas como abstractas, existen múltiples ejemplos de entidades
recursivas. Una concha de caracol es una sucesión de figuras curvas que se vuelven un poco más
grandes cada vez y se van envolviendo; cuando se detalla un helecho, se descubre que todas sus
partes comparten una estructura similar con la única diferencia del tamaño en que se replica cada
una; la imagen de un espejo frente a otro se repite hasta que se vuelve tan pequeña que no podemos
detallarla; la computación gráfica produce estructuras geométricas conocidas como fractales, que no
son más que la superposición de una misma forma repetida en miles de ocasiones y con diferentes
dimensiones. No existen solamente estos ejemplos, sino muchos más que seguramente pasan
desapercibidos para la mayoría de las personas. Sin embargo, los pocos que los reconocieron y se
cuestionaron acerca de su valor descubrieron su utilidad en el desarrollo de soluciones matemáticas y
algorítmicas. Este último aspecto es el que se estudiará a través de esta lectura.

(a) (b) (c)

Figura 1. Tres ejemplos de entidades recursivas: (a) una concha de caracol, (b) un helecho y (c) un fractal generado por
computador
Fuente: (a) Delbert (s.f.); (b) Srubina (s.f.); (c) sakkmesterke (s.f.)

Un problema que se puede resolver a través de una estructura repetitiva puede solucionarse por
medio de una función recursiva. Las razones para preferir el uso de la recursión son la elegancia y el
nivel de complejidad de algunas soluciones iterativas.

POLITÉCNICO GRANCOLOMBIANO 2
2. Funciones matemáticas recursivas
Es posible extender la definición de entidad recursiva a las funciones matemáticas: una función
recursiva, entonces, sería aquella que se define en términos de sí misma. La ecuación 1 ilustra un
ejemplo de una función matemática recursiva.

Se deben notar dos cosas en este ejemplo:

1. La función puede ser evaluada de dos maneras diferentes dependiendo del valor que tome el
parámetro.

2. En caso de que el parámetro sea mayor que uno, la evaluación de la función está dada en
términos de sí misma; es decir, para evaluar la función f se evalúa a su vez la función f.

Hasta aquí puede parecer un poco complejo; por ello conviene ver cómo se evaluaría la función de
la ecuación 1. Se considerará la situación en que el parámetro toma el valor de cinco, es decir, se
calculará f(5).

f(5) (paso 1) como el parámetro de f es mayor que uno,se sigue el caso 2


=f(4)+5 (paso 2) como el parámetro de f es mayor que uno,se sigue el caso 2
=f(3)+4+5 (paso 3) como el parámetro de f es mayor que uno,se sigue el caso 2
=f(2)+3+4+5 (paso 4) como el parámetro de f es mayor que uno,se sigue el caso 2
=f(1)+2+3+4+5 (paso 5) como el parámetro de f es igual a uno,se sigue el caso 1
=1+2+3+4+5 (paso 6) Ahora solamente queda realizar la suma.
=15

En los primeros cuatro pasos se cumple la condición de que el parámetro sea mayor que uno y, por
ello, de acuerdo con la función, se toma en cuenta el caso 2. Esto implica que la función cada vez pide
ser resuelta en términos de ella misma. Finalmente, en el quinto paso el parámetro es igual a uno y por
ello se toma el caso 1. Nótese que en ese momento la función ya no está en términos de sí misma y se
puede calcular el valor final de la función.

POLITÉCNICO GRANCOLOMBIANO 3
De ahora en adelante, al caso 1 se le llamará caso base y al caso 2 se le llamará caso recursivo.

Cómo mejorar...
Volviendo sobre el ejemplo y preguntándose ¿qué problema está resolviendo
está función recursiva? La respuesta está en el siguiente párrafo, así que se
recomienda hacer una pausa en la lectura y no volver a ella hasta encontrar
una respuesta que parezca correcta.

La función del ejemplo calcula la sumatoria desde uno hasta x, donde x es un


número natural mayor que cero. Después de responder la primera pregunta, se
recomienda reflexionar acerca de la forma en que podría resolverse el mismo
problema, pero usando estructuras repetitivas.

2.1. Caso base y caso recursivo

Toda función recursiva debe tener al menos un caso base y un caso recursivo. Si existe siempre al
menos un caso base, se está asegurando que el proceso de evaluación de la función alcance una final.
Por otra parte, si no existiera al menos un caso recursivo, la función simplemente no sería recursiva.

La característica principal de un caso base es que representa una solución simple a un problema
particular. En el ejemplo, el hecho de que el problema sea particular hace referencia a que se cumple
exclusivamente cuando el parámetro es igual a uno; además, es una solución simple porque da un
valor singular como solución: f(1) = 1.

Las características de un caso recursivo son:

1. Hace un llamado a la misma función. En el ejemplo, la función f invoca a la misma función f.

2. Resuelve repetidamente el mismo problema, pero cada vez lo hace con un parámetro de distinto
tamaño. En el ejemplo, el caso recursivo evalúa en cada paso el parámetro del paso anterior
disminuido en uno.

POLITÉCNICO GRANCOLOMBIANO 4
3. Converge hacia el caso base; en otras palabras, asegura que en algún momento se alcance
el caso base. En el ejemplo, es claro que si un número natural se disminuye en una unidad
continuamente, tarde o temprano tomará el valor de uno, que es el valor del parámetro en el
caso base.

Para ver la importancia de estas características vale la pena hacerse algunas preguntas hipotéticas:

¿Pueden existir dos funciones que sean diferentes a pesar de tener el mismo nombre?

Sí puede suceder y se debe ser cuidadoso con ello. Una función no se define únicamente por su
nombre, sino también por los parámetros asociados a ella. Podrían existir dos funciones que se
llamaran f, pero una podría tener un parámetro y la otra dos, lo cual implicaría que son dos funciones
diferentes. Si la función f de un parámetro invocará a la función f de dos parámetros o viceversa, no
habría recursión. Entonces, puede notarse la importancia de la primera característica de los casos
recursivos.

¿Qué pasaría si en vez de x-1, el parámetro usado en el llamado a la función del caso recursivo fuese x?

Nunca se alcanzaría el caso base, por lo tanto, el algoritmo no tendría fin. Se debe recordar que en el
primer escenario se dijo que una de las características deseables de un algoritmo es que sea finito. A
esto hace referencia la segunda característica de los casos recursivos.

¿Qué pasaría si en vez de x-1, el parámetro usado en el llamado a la función del caso recursivo fuese x+1?

Nuevamente, no sería posible alcanzar el caso base y se tendría un algoritmo infinito. Esto se debe a
que es imposible alcanzar un valor de uno (requerido en el caso base) si se suma consecutivamente
una unidad a un número natural.

2.2. Metodología para escribir una función matemática recursiva

Resolver un problema por medio de la definición de una función matemática recursiva puede parecer
un proceso complejo; sin embargo, la estandarización de un procedimiento simple puede hacerlo más
fácil. La metodología presentada en la figura 2 es una sugerencia; el estudiante es libre de decidir si la
adopta o encuentra una mejor aproximación.

POLITÉCNICO GRANCOLOMBIANO 5
Figura 2. Metodología sugerida para definir una función recursiva
Fuente: Elaboración propia

3. Ejemplos

3.1. Evaluación de una función recursiva

El objetivo de este ejemplo no es resolver un problema; es evaluar una función que construyó otra
persona. Este caso es interesante pues hace referencia a una forma creativa que encontró Euclides
para calcular el máximo común divisor entre dos números. La función recursiva es:

POLITÉCNICO GRANCOLOMBIANO 6
En este ejemplo se encontrará el máximo común divisor entre 92 y 26 haciendo uso del algoritmo de
Euclides. La evaluación sería de la siguiente manera:

MCD(92, 26) = MCD (26,14) Caso recursivo porque el residuo entre 92 y 26 es diferente a 0.

= MCD (14,12) Caso recursivo porque el residuo entre 26 y 14 es diferente a 0.

= MCD (12,2) Caso recursivo porque el residuo entre 14 y 12 es diferente a 0.

=2 Caso base porque el residuo entre 12 y 2 sí es igual a 0.

Nótese que cuando el residuo entre los parámetros es diferente de cero, la función es equivalente a
la misma función, pero calculada con un primer parámetro igual al segundo parámetro de la función
original y con un segundo parámetro igual al residuo entre los parámetros de la función original (caso
recursivo). Por otra parte, cuando el residuo de los parámetros es cero, la función toma simplemente
el valor del segundo parámetro de la función original (caso base).

3.2. Problema del factorial de un número

A diferencia del ejemplo anterior, aquí sí se resolverá un problema por medio de la implementación de
una función recursiva. Para ello, se implementará la metodología indicada en la sección anterior.

Enunciado. Dado un número natural, n, calcular el factorial de n.

Solución. Antes de comenzar a plantear una solución es conveniente recordar que el factorial de
un número, n, se obtiene al multiplicar todos los números naturales desde 1 hasta n. Por ejemplo, el
factorial de 6 es igual a 720.

Factorial (6)=1*2*3*4*5*6

Factorial (6)=720

También resulta útil saber que el factorial de cero es uno:

Factorial (0)=1

POLITÉCNICO GRANCOLOMBIANO 7
El primer paso de la metodología sugerida es modelar y especificar el problema. Aquí no se muestra el
proceso completo porque el tema ya se exploró suficientemente en el escenario 4; sin embargo, hay
que resaltar que es un proceso clave. Posteriormente, se piensa en el caso base. Si se observa toda la
información disponible, rápidamente se llega a la conclusión de que la situación de más fácil resolución
es aquella en que el parámetro es cero. La función hasta este punto sería algo como:

Ahora, hay que encontrar una relación de recurrencia, para lo cual se usa un ejemplo pequeño. Para el
caso de que n fuese cuatro, el cálculo sería el siguiente:

Factorial (4)=1*1*2*3*4

Nótese que se adicionó un uno extra al inicio de la multiplicación. Este elemento ayuda a solucionar
más fácilmente este ejercicio en particular, porque ese uno está representando el factorial de cero.
Entonces, se puede pensar en que si se asocian los primeros cuatro factores (1, 1, 2 y 3) del producto,
se obtendría algo como:

Factorial (4)=(1*1*2*3)*4

Factorial (4)=Factorial (3)*4

Luego, se podría pensar de la misma manera si se asocian los tres primeros factores (1, 1 y 2):

Factorial (3)=(1*1*2)*3

Factorial (3)=Factorial (2)*3

Factorial de dos podría representarse como:

Factorial (2)=Factorial (1)*2

Y factorial de uno puede expresarse así:

Factorial (1)=Factorial (0)*1

POLITÉCNICO GRANCOLOMBIANO 8
El caso de factorial de cero ya lo tenemos, pues es nuestro caso base, así que no lo detallamos. Del
análisis anterior, puede concluirse que existe una relación entre el valor de la función calculada en
el punto n respecto al valor de la función calculada en el punto n-1: el factorial de un número n es
igual al factorial del número anterior n-1 multiplicado por n. Esa es la relación de recurrencia que
buscábamos y que puede expresarse:

Factorial (n)=Factorial (n-1)*n

Por último, incorporamos la relación de recurrencia como caso recursivo y se obtiene finalmente la
función matemática recursiva:

Ejercicios propuestos

Ejercicio 1. Evaluar la siguiente función matemática recursiva para el caso en que a es igual a 27 y b es
igual a 5.

¿Qué problema está resolviendo la función f?

Ejercicio 2. Evaluar la siguiente función matemática recursiva, primero para el caso en que n es igual
a 13 y luego para el caso en que n es igual a 10.

¿Qué problema está resolviendo la función p?

POLITÉCNICO GRANCOLOMBIANO 9
Ejercicio 3. Evaluar la siguiente función matemática recursiva para el caso en que n es igual a 6.

¿Qué problema está resolviendo la función e?

Ejercicio 4. Formular una función matemática recursiva que, dados dos números naturales x y n,
calcule el valor de x elevado a la n. Pruebe la función para el caso en que x es igual a 3 y n es igual a 4.

POLITÉCNICO GRANCOLOMBIANO 10
Referencias
Joyanes, L. (1996). Fundamentos de programación : Algoritmos y estructura de datos. Madrid: McGraw-Hill.

Downey, A., & Mayfield, C. (2016). How to think like a computer scientist. Needham: Green Tea Press.

Referencias de figuras
Delbert, C. (s.f.). Tres ejemplos de entidades recursivas: una concha de caracol, un helecho y un
fractal generado por computador (a) [Fotografía de archivo]. Recuperado de https://es.123rf.
com/search.php?word=11730676&srch_lang=es&imgtype=&Submit=+&t_word=&t_
lang=es&orderby=0&mediapopup=11730676

Sakkmesterke. (s.f.). Tres ejemplos de entidades recursivas: una concha de caracol, un helecho y un fractal
generado por computador (c) [Fotografía de archivo]. Recuperado de https://es.123rf.com/search.
php?word=29012413+&srch_lang=es&imgtype=0&t_word=&t_lang=es&orderby=0&t_word=&t_
lang=es&oriSearch=44337407&mediapopup=29012413

Srubina, E. (s.f.). Tres ejemplos de entidades recursivas: una concha de caracol, un helecho y un fractal
generado por computador (b) [Fotografía de archivo]. Recuperado de https://es.123rf.com/search.
php?word=44337407+&srch_lang=es&imgtype=0&t_word=&t_lang=es&orderby=0&t_word=&t_
lang=es&oriSearch=11730676&mediapopup=44337407

POLITÉCNICO GRANCOLOMBIANO 11
INFORMACIÓN TÉCNICA

Módulo: Pensamiento Algorítmico


Unidad 4: Instrucciones y recursión
Escenario 8: Recursión

Autor: Javier Fernando Niño Velásquez

Asesor Pedagógico: Jeiner Leandro Velandia


Diseñador Gráfico: Felipe Puentes
Asistente: Leidy Alejandra Morales Eslava

Este material pertenece al Politécnico Grancolombiano. Por


ende, es de uso exclusivo de las Instituciones adscritas a la Red
Ilumno. Prohibida su reproducción total o parcial.

POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 12

También podría gustarte