🥇 Funciones Recursivas, Las Torres de Hanoi

🍿 ¿Qué son Las Torres de Hanoi?

El juego de Las Torres de Hanoi es un rompecabezas en el cual existen 3 pilas. En la primera hay una serie de discos apilados de radio mayor al menor.

El objetivo es transferir toda la pila del primer apilamiento al último moviendo solo un disco a la vez, con la peculiaridad de que nunca un disco mas grande puede estar por encima de uno pequeño.

Torres de Hanoi

🍿 ¿Cómo implementar Las Torres de Hanoi en Pseudocódigo?

El pseudocódigo para el ejemplo de Las Torres de Hanoi es.

def mover(discos, origen, destino, auxiliar):
    if discos > 0
        mover(discos-1, origen, auxiliar, destino)
        mover(discos-1, auxiliar, destino, origen)

🍿 ¿Cómo implementar Las Torres de Hanoi en Go?

La implementación de Las Torres de Hanoi en Go es la siguiente.

package main

func Mover(discos int, origen string, destino string, aux string) {
	if discos > 0 {
		Mover(discos-1, origen, aux, destino)
		Mover(discos-1, aux, destino, origen)
	}
}

func main() {
	Mover(3, "P1", "P2", "P3")
}

En el rompecabezas de Las Torres de Hanoi, el número de movimientos requeridos para mover todos los discos de A a C es movimientos = 2 ^ discos - 1. Es decir, para tres discos se requieren 7 movimientos que es el número menor de movimientos requeridos para resolver el rompecabezas.