Razonamiento Inductivo en Algoritmos Recursivos
Clase 17 de 36 • Curso de Scala básico
El razonamiento inductivo es una manera de razonar donde el primer paso es encontrar lo que se conoce como caso base, es decir, un hecho concreto que usaremos como inicio del proceso que queremos modelar.
El siguiente paso es modelar la continuación del proceso (paso inductivo) usando el caso base anterior. Lo que sucede entonces es que el resultado de este proceso se convierte en el nuevo caso base. Esto puede repetirse cuantas veces sea necesario ya que conceptualmente puede ser infinito, aunque lo normal es hallar una condición que detiene el proceso de continuación y entrega el resultado final.
¿Te parece familiar esta manera de razonar?, esta es justamente la manera de razonar para crear algoritmos recursivos. En matemática también se usa para realizar pruebas sobre proposiciones. Recuerda que una proposición es algo que afirmas, pero que puede ser falso o verdadero.
Ejemplo de razonamiento inductivo
Un ejemplo sencillo de una prueba por inducción matemática sería probar la siguiente proposición: «Los números son infinitos».
- El caso base sería el número más bajo, que es el 0 (cero).
- La continuación se usa el caso base y se le suma el número 1.
- La prueba es que, si para cualquier caso base puedo sumarle 1, entonces los números son infinitos.
El resultado de esta proposición es que es cierta, porque a nivel matemático no hay nada que evite que pueda sumarle un 1 a cualquier otro número. Por supuesto esto no es cierto en informática, donde estamos limitados por el espacio de memoria, esto nos pone un límite donde ya no es posible sumar más cuando hay un número muy grande. Si no conocías de esta limitación, quizás quieras ver el Curso de Fundamentos de Ingeniería de software aquí en Platzi.
Lo importante aquí es que al momento de pensar en la manera de solucionar un problema de programación, entrenar a nuestro cerebro para usar el razonamiento inductivo nos puede dar soluciones más elegantes y consistentes, lo que normalmente da como resultado software más "correcto".
Por supuesto, no en todos los casos una solución de esta naturaleza será la más eficiente computacionalmente, pero pasar de una solución inductiva a una que no, suele ser más fácil que al revés.