Escribir código para resolver el Puzzle de la torre de Hanoi (2 / 4 paso)

Paso 2: Codificar el patrón recursivo

Para solucionar para los discos de N, tenemos que ser capaces de resolver para los discos de N-1. Esto es donde entra la recursividad. Como parte de este plan, que desea escribir código que se aplica a un número diferente de discos para el rompecabezas, así como los mensajes de inicio y destino diferentes.

El pseudo código para que se ve:

Específicamente que se refiere el post A, B, y y post C arriba, pero el código debe ser generalizado porque según el disco, el post de inicio y destino los mensajes serán diferentes. Si lo piensas, estamos resolviendo el puzzle 3 veces:

  1. Moviendo N-1 discos de post A post B
  2. Moviendo N-1 discos de poste B a C
  3. Móvil N discos del poste A poste C

Así que se necesita un programa generalizado que le dilo Cuáles son los puestos de salida y destino. Lo interesante es que realmente no estás escribiendo mucho código, que es una parte importante de la apelación de la recursividad. Simplemente describir en el programa de cómo romper un cálculo en pedazos más pequeños, y el ordenador hace el resto.

El seudocódigo detallada parece:

Aquí es cómo se ve el código JavaScript:

Si no eres un programador, me explico que el código anterior se envuelve en una "función" que le permite ejecutar el mismo código con diferentes entradas. Ahora puede decirle al programa cuántos discos tiene en su rompecabezas, así como que los mensajes son Inicio, destino y puestos de estacionamiento. La función también es la base para poder ejecutar la recursividad, en que se ejecuta el mismo código una y otra vez pero con diferentes entradas (entradas también son conocidas como "parámetros" o "argumentos" en jerga de programación).

Artículos Relacionados

Laberinto para resolver Robot

Laberinto para resolver Robot

Información adicional en: http://patrickmccabemakes.com/hardware/Maze_Solvin...En este instructable mostrará usted cómo construir un laberinto para resolver robot. Este es realmente mi 3er intento hacer uno. La primera fue un completo fracaso. El seg
Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Actualización: un usuario pidió menú apoyo. pfodApp siempre admite submenús pero he agregado submenús al pfodDesigner. El instructable diseño un sistema de menú Custom muestra cómo utilizar pfodDesigner para crear un menú con submenús que mostrará en
Robot más simple para resolver el laberinto de Possible Microcontroller-Based

Robot más simple para resolver el laberinto de Possible Microcontroller-Based

Ok, tienes un microcontrolador y necesita para construir el robot posible más simple para resolver un laberinto. ¿Cuál sería tu solución? Consideramos que una pregunta difícil, use su imaginación, hay una solución que sólo te llevará 15 minutos de su
Ejecuta Accelstepper más rápido - HodgePodging de código para una mayor rapidez máxima velocidad

Ejecuta Accelstepper más rápido - HodgePodging de código para una mayor rapidez máxima velocidad

¡ Bienvenido a mi instructable simple! Espero encontrar tiempo para editar este instructable durante la próxima semana y hacer mejoras. También te cuenta que intentan usar etiquetas de código, pero por desgracia que parece limitada a los miembros de
Cómo escribir código de G (básico)

Cómo escribir código de G (básico)

los conceptos básicos de la escritura de código de G y M códigoPaso 1: Escribir la introducción Comenzar la primera línea con un '%' y luego pulse enter. La siguiente línea debe comenzar con un capital ' o '. Si el personaje que es un cero la máquina
Código para un cuestionario simple!

Código para un cuestionario simple!

se trata de un código y usted puede comprobar por vosotros mismosPaso 1: Abrir Bloc de notasabrir Bloc de notas de la forma más fácilPaso 2: Copiar y pegar estodecolor 02: Eco INTRO eco QUIZ. A. tipo un inicio eco. B. tipo b para salida set /p entrad
VBA código para desbloquear A bloquear hoja de Excel

VBA código para desbloquear A bloquear hoja de Excel

si alguna vez has olvidado una contraseña para uno de tus hojas de cálculo de excel usted sabe lo frustrante que puede ser.El código usado en esta instrucción es uno de los más sencillos que he encontrado. Se generará un código utilizable que desbloq
Cómo escribir usando cinta para ductos

Cómo escribir usando cinta para ductos

después de hacer algunas otras cosas de la cinta, me preguntaba qué más podría hacer del mayor invento del hombre que sería digno del concurso "Duro de cinta del conducto". Después de algún pensamiento, se me ocurrió esto. "Cómo escribir us
Cómo escribir canciones cortas para principiantes

Cómo escribir canciones cortas para principiantes

decidí que me gustaría probar algo nuevo. Por favor dígame cuál es tu opinión en esto. Gracias.Paso 1: materiales ♥ un lápiz o bolígrafo ♥ un ♥ superficie duro papel tiempo libre ♥Paso 2: Tiempo de elegir Elegir o hacer un tema para hablar y escribir
Importar una biblioteca de código para el Arduino

Importar una biblioteca de código para el Arduino

Importar una biblioteca de código en el entorno de Software de Arduino.Esta es una habilidad que cualquier persona que trabaje más allá de los principios del código básico de la IDE de Arduino en algún momento tendrán que aprender.Este pequeño instru
Cómo construir un sensor de aparcamiento para resolver el dolor de encontrar un lugar libre

Cómo construir un sensor de aparcamiento para resolver el dolor de encontrar un lugar libre

En este proyecto construiremos un sensor de estacionamiento simple con un Raspberry Pi. ¿Resulta que por las mañanas tengo que enfrentar esta cuestión: es el lugar de estacionamiento sólo frente a mi oficina ya? Porque cuando en realidad es, tengo qu
Máquina de escribir antigua reciclada para convertirse en sostenedor del cepillo de pintura

Máquina de escribir antigua reciclada para convertirse en sostenedor del cepillo de pintura

descargo de responsabilidad: yo no destruyó una máquina de escribir antigua perfectamente buena. Encontré esta vieja máquina de escribir en una venta de garaje. Fue en la pila libre y las claves ya habían sido quitadas por alguien con el fin de hacer
El último paso para resolver un cubo de Rubik

El último paso para resolver un cubo de Rubik

Para terminar el cubo simplemente tienen la cara completa de la derecha y realizar el algoritmo L180, Ti, B, Fi, L180, Bi, F, Ti, L180. Quizás tenga que realizar el algoritmo varias veces, pero usted conseguirá.Logro desbloqueado. Ahora tienes otro l
LED luz para arriba Sims plomada traje (esa torre verde por encima de su cabeza)

LED luz para arriba Sims plomada traje (esa torre verde por encima de su cabeza)

tras años y años de "querer" hacer la plomada verde de serie de los Sims, finalmente lo hice! El fresco sobre el "traje" es que usted puede usar lo quiera y ser un Sim! He utilizado Dan del instructivo, en este enlace aquí, para tener