P: ¿Cuál es la forma más sencilla de obtener la suma de los números enteros entre 1 y 100?
R: en primer lugar obtener la suma de los números enteros entre 1 y 99, luego añadir 100.
¿Tonto, correcto? Este es realmente un ejemplo de una técnica poderosa de divide y vencerás en la programación de la computadora conocido como "recursividad". Recursividad trata una tarea de cómputo como un sistema de cómputos más pequeñas, de manera similares, con el siguiente cómputo menor siendo calculado y luego el siguiente y el siguiente, hasta llegar a un "caso base" con una respuesta conocida. Para el siguiente paso del ejemplo anterior, para obtener la suma de números enteros entre 1 y 99, usted simplemente suma los números enteros entre 1 y 98, luego añade 99. Si seguir la cadena, se llega al caso base de suma de números enteros entre 1 y 1, que sabemos que es 1.
Un divertido uso de la recursividad es para escribir un programa que te puede dar la solución al rompecabezas de la torre de Hanoi. Ese rompecabezas se muestran en la imagen de esta página. El objetivo es mover todos los discos desde el primer post al tercer puesto. Las reglas del puzzle son:
- Sólo puede moverse un disco a la vez de un puesto a otro, que significa en cualquier momento, a más de un disco puede ser de un post.
- Puede mover cualquier disco al segundo puesto como una zona de descanso.
- Los discos no se pueden mover en la parte superior un disco más pequeño.
¿Cómo puede este rompecabezas de dividirse en partes más pequeñas? Como muestran las imágenes, esta versión de 7-disco del rompecabezas de la torre de Hanoi se puede resolver como:
- Resolver la versión 6-disco del rompecabezas de poste A poste B.
- Mover disco 7 de poste A poste C.
- Resolver nuevamente la versión de 6 discos de puzzle, esta vez del poste B a C.
Para este instructable, usaré JavaScript como lenguaje de programación para que este pueda ejecutar en un navegador web estándar. Ayuda a estar familiarizado con algunos conceptos de programación básico, pero si no, esperemos que esta instructable le sea interesante.
Si te gusta este instructable, por favor, vote por mí en el concurso de creaciones codificadas antes de 18 de mayo de 2015. Gracias.
Vamos a comenzar la codificación.