jueves, 17 de julio de 2014

Recursividad, las matemáticas de la repetición

MOTIVACIÓN
La recursividad es una forma de resolver problemas basada en la repetición de la misma rutina disminuyendo la dificultad de la resolución de los mismos hasta llegar a un punto en que se resuelven fácilmente. Deshaciendo el camino se puede resolver el problema general. Esta forma de proceder está en la raíz de todas las matemáticas puesto que como vamos a ver está en la definición de la propia multiplicación.
EXPERIMENTACIÓN
Supongamos que tenemos que sumar diez veces tres:
Suma(10,3)=3+3+3+3+3+3+3+3+3+3
entonces podemos calcular primero la suma de nueve tres y sumarle otro tres:
Suma(10,3)=Suma(9,3)+3
y proceder así sucesivamente:
Suma(n,3)=Suma(n-1,3)+3
Hasta que al final podemos resolver el problema:
Suma(2,3)=Suma(1,3)+3=3+3=6
A partir de aquí se retrocede en el camino y se llega al resultado final que es 30.
CONCEPTUALIZACIÓN
Al resolver un problema usando la recursividad necesitamos averiguar cuál es el término general:
Suma(n,3)=Suma(n-1)+3
y cuál es el caso base:
Suma(1,3)=3
El término general nos indica como ir disminuyendo la dificultad del problema y el caso base cómo resolverlo en una situación sencilla.
PROCESAMIENTO:
Veamos como funciona el proceso:
Suma(10,3)=Suma(9,3)+3=(Suma(8,3)+3)+3=((Suma(7,3)+3)+3)+3=(((Suma(6,3)+3)+3)+3)+3=((((Suma(5,3)+3)+3)+3)+3)+3=(((((Suma(4,3)+3)+3)+3)+3)+3)+3=((((((Suma(3,3)+3)+3)+3)+3)+3)+3)+3=(((((((Suma(2,3)+3)+3)+3)+3)+3)+3)+3)+3= ((((((((Suma(1,3)+3)+3)+3)+3)+3)+3)+3)+3)+3=(((((((6+3)+3)+3)+3)+3)+3)+3)+3=((((((9+3)+3)+3)+3)+3)+3)+3=(((((12+3)+3)+3)+3)+3)+3=((((15+3)+3)+3)+3)+3=(((18+3)+3)+3)+3=((21+3)+3)+3=(24+3)+3=27+3=30
MECANIZACIÓN
Si queremos automatizar la ejecución debemos de establecer una cola de espera, donde el último en entrar es el primero en salir. La cola es esperar en este orden S(10,3), S(9,3), S(8,3), S(7,3), S(6,3), S(5,3), S(4,3), S(3,3), S(2,3), S(1,3). Ahora va saliendo desde el final y al último resultado le sumamos 3, S(1,3)=3, S(2,3)=6, S(3,3)=9, S(4,3)=12, S(5,3)=15, S(6,3)=18, S(7,3)=21, S(8,3)=24, S(9,3)=27, S(10,3)=30
CONSOLIDACIÓN
El primer paso es resolver el caso base, resolver el problema en su caso más sencillo, sumar una vez 3, S(1,3). A continuación hay que ver como se hace el siguiente caso más sencillo desde el paso anterior, sumar dos veces 3, S(2,3)=S(1,3)+3, el siguiente, S(3,3)=S(2,3)+3, así ya se puede sacar la fórmula del término general, S(n,3)=S(n-1,3)+3. A partir de ahí se va aplicando está fórmula repetidamente hasta completar el número de veces que se desea sumar 3.
EVALUACIÓN
¿Cuál es la clave para que el problema se pueda hacer de forma recursiva? Es la repetición como su propio nombre indica. Sumar tres diez veces solo se puede hacer sumando tres de uno en uno y acumulando los resultados, diez veces. En este caso es evidentemente la multiplicación de 10 por 3 que se tiene tabulada.
S(1,3)=3=1·3
S(2,3)=S(1,3)+3=3+3=2·3
S(3,3)=S(2,3)+3=S(1,3)+3+3=3+3+3=3·3
S(n,3)=n·3 (regla)
S(10,3)=10·3=30

No hay comentarios: