Las torres de Hanoi. Informática - Hoja de Ejercicios 6

Documentos relacionados
RECURRENCIA RECURSIÓN o RECURSIVIDAD

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

LAS TORRES DE HANOI-6 Si quieres saber más

Ejercicios Resueltos del Práctico 3 - Recursión

Tema 4.- Recursión e iteración

Funciones Básicas de la Hoja de Cálculo

Ejercicios sobre recursividad

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Capacitación en el uso de herramientas didácticas en nivel básico

Recursividad. Definición. Diseño de Algoritmos Recursivos

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN

Matemáticas Discretas TC1003

Resolución de Problemas y Algoritmos Segundo cuatrimestre de 2015 Clase 18: Recursión - Problemas clásicos

Listas. Rafael Palacios May/2005

Tema 7: Recursividad

RUTA DEL INTERIOR. CAMINO PRIMITIVO CONCEJO DE GRANDAS DE SALIME CARTOGRAFÍA ESTADO Y CARACTERISTICAS ELEMENTOS ASOCIADOS

Combinar correspondencia

Fundamentos de la programación

MICROSOFT EXCEL MICROSOFT EXCEL Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

EXCEL I UNIDAD 1 EMPEZANDO A TRABAJAR CON EXCEL (SEMANA 1)

EXPERTO EN OFIMATICA (65 HORAS) MODULO 1. WORD (19 HORAS. 12 HORAS TEORICAS Y 7 HORAS PRACTICAS)

PRACTICA 10: Máquinas de Turing

Introducción Algoritmos de tipo dividir para vencer Algoritmos de rastreo Inverso. Recursividad. Programación Avanzada. 8 de septiembre de 2017

Una Introducción a la Programación Estructurada en C

Impresión. Vista de Diseño de página

Para establecer márgenes, orientación de página y otras opciones de configuración de página, se debe realizar el siguiente procedimiento:

Las Torres de Hanoi. Las Torres de Hanoi

INSTITUCIÓN MANUEL MARÍA SÁNCHEZ Tecnología e Informática Word

Unidad 3: Gestión de Archivos

Impresión. Vista de Diseño de página

Denominación: OPERACIONES AUXILIARES CON TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN. Código: MF1209_1

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7

Introducción a la Programación

índice MÓDULO 1: PowerPoint XP 1ª Parte Herramientas de Comunicación: PowerPoint XP TEMA 1. Primeros Pasos TEMA 2. La Plantilla y sus Componentes

Separar texto en columnas

Logro. Conocimientos previos. Tema: Realizando acciones en Microsoft Office Publisher #

Campos que se pueden introducir de modo automático en LibreOffice (OpenOffice)

Habilitar las macros en el calendario Lo primero que debes saber es que, el calendario 2017 utiliza macros para dos cosas:

TRATAMIENTO DE DATOS

Práctica 3: Presentaciones con OpenOffice I

Pantalla de carta 2018

ÍNDICE INTRODUCCIÓN... 13

Utilización de variables en texto y en códigos de barra GS1


CACTUS-Cálculo Versión 3.4. Descripción del producto

Introducción a la recursividad. Diseño y Análisis de Algoritmos

Programa Formativo IFCT OPERACIONES AUXILIARES DE MONTAJE Y MANTENIMIENTO DE SISTEMAS MICROINFORMÁTICOS

Las consultas. Ejercicio 6: Concesionario VI. Si no tienes abierto Access2003, ábrelo para realizar los ejercicios planteados a continuación.

Word y Excel Básico. Contenido Temático. Unidad I Word Básico. Módulo 1. Explorar Word 2010

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

INFORMÁTICA E INTERNET MEDIO TEMA 8: WINDOWS (II) Profesor José Antonio Cotanda Rucio

ESTRUCTURA DE DATOS: Tema 3. Recursividad

El resultado será el siguiente gráfico, muévelo de manera que no cubra los datos de la hoja de cálculo:

Administración de sistemas gestores de bases de datos

Para imprimir hay que tener en cuenta las opciones que se encuentran en tres grupos:

Clase 2: El Lenguaje Python

Guía de ayuda para la configuración manual de los nuevos tipos de IVA y Retención

M.C. Yolanada Moyao Martínez

07 Variables. 7.1 Variables globales Definición

Explotación de la Biblioteca de documentos.

Matemáticas Discretas II clase 6: Ecuaciones de recurrencia Universidad del valle

Introducción Mic i ro r s o of o t t W or o d r

Construyendo Programas más Complejos

Tutorial de Python orientado a objetos

Curso Superior de Office Nivel Profesional (440 horas)

Unidad N 11. Impresión.

Se debe disponer sobre la mesa un documento de identificación con fotografía.

INSTITUTO POLITÉCNICO NACIONAL

Algorítmica y Lenguajes de Programación. Ficheros

Manual para la instalación, configuración y uso de la utilería de impresión SicdePrintUtility

Combinar correspondencia

SIMULACIÓN DE MOVIMIENTO

Entrada/Salida de Archivos

CURSO SUPERIOR DE OFFICE NIVEL PROFESIONAL

Cómo combinar correspondencia y enviar por correo electrónico con Word 2007 y 2010

ACTIVIDAD INFORMÁTICA: VIDEOCLUB

GESTIÓN DE VENTAS POR CATEGORÍAS

ÍNDICE INTRODUCCIÓN CAPÍTULO 1. FUNCIONAMIENTO BÁSICO DEL EQUIPO INFORMÁTICO... 17

Si la marcamos, la preparación se envía automáticamente a paquetes al marcarla como envasada.

Pilas Motivación

Práctica : Creación y uso de métodos

ÍNDICE INTRODUCCIÓN CAPÍTULO 1. BLOQUES FUNCIONALES EN UN SISTEMA INFORMÁTICO... 17

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

UNIVERSIDAD POLITÉCNICA DE CARTAGENA

Manual de Informe de Tienda GIO INTELLIGENT

GESTIÓN DE DOCUMENTOS DE PAGO

A DISTANCIA / SEMIPRESENCIAL / PRESENCIAL / TELEFORMACIÓN

B12. Informática I. Curso 2001/2002

Servicios Informáticos Curso

Gestión del tiempo con Excel Diseñe planificaciones, horarios, tabla de ausencias

Gestión del tiempo con Excel Diseñe planificaciones, horarios, tabla de ausencias - Versión online

Recursividad. 1.1 Concepto de Recursividad. Objetivos. Metodología de la Programación II Entender el concepto de recursividad.

GUÍA PARA PRESENTAR EL 3ER EXAMEN EXTRAORDINARIO DE LA MATERIA: INFORMATICA Y COMPUTACION I

HOJA DE CÁLCULO EXCEL

Formación a distancia de Curso de Computación e Informática

MICROSOFT EXCEL 2007 (FÁCIL)

Transcripción:

Las torres de Hanoi Informática - Hoja de Ejercicios 6

Posición inicial

Objetivo Mover todos los discos desde la aguja A a la aguja C

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Normas. Sólo se puede mover un disco a la vez de una aguja a otra.. No se puede colocar un disco encima de otro de menor tamaño.

Procedimiento general Queremos mover discos desde A hasta C, utilizando, B como aguja auxiliar.

Procedimiento general Paso : Mover discos de A a B, utilizando C como aguja auxiliar. (Se hace en varios pasos) Mismo problema, pero de tamaño menor.

Procedimiento general Paso : Mover discos de A a B, utilizando C como aguja auxiliar. (Se hace en varios pasos)

Procedimiento general Paso : Mover un disco de A a C. (Un único paso)

Procedimiento general Paso : Mover un disco de A a C. (Un único paso)

Procedimiento general Paso : Mover discos de B a C, utilizando A como aguja auxiliar.

Procedimiento general Paso : Mover discos de B a C, utilizando A como aguja auxiliar.

Resumen Queremos mover discos de A a C, utilizando B como auxiliar:. Mover discos de A a B, utilizando C como auxiliar.. Mover directamente el disco (el más grande), de A a C.. Mover discos de B a C, utilizando A como auxiliar.

Generalización Queremos mover n discos de A a C, utilizando B como auxiliar:. Mover n- discos de A a B, utilizando C como auxiliar.. Mover directamente el disco n (el más grande), de A a C.. Mover n- discos de B a C, utilizando A como auxiliar.

Objetivo Realizar un programa, que partiendo de una posición inicial con n discos en la aguja A, llegue a la posición en la que los n discos estén en la aguja C. El programa debe escribir en un archivo la representación de las sucesivas configuraciones por las que van pasando las agujas.

Ejemplo Configuración 0: ----------------- Configuración : ----------------- Configuración : ----------------- -------- Torre -------- Torre -------- Torre -------- Torre -------- Torre -------- Torre -------- Torre -------- Torre -------- Torre

Representación de las torres A Columna A: [,, ]

Representación de las configuraciones 0 [ [, ], [ ], [, ] ]

Representación de las configuraciones 0 [ [, ], [ ], [, ] ]

Representación de las configuraciones 0 [ [], [ ], [,, ] ]

Representación de las configuraciones 0 [ [], [ ], [,, ] ] Configuración

Paso Crear una función para mover fichas de una columna a otra. def mover(configuracion, ColOrigen, ColDestino): donde: Configuracion contiene la información de las tres agujas. ColOrigen contiene el índice de la aguja que contiene el disco que queremos sacar. ColDestino contiene el índice de la aguja donde queremos meter el disco.

Paso 0 Si C = [ [, ], [ ], [, ] ] mover(c, 0, )

Paso Esqueleto del programa: def hanoi(n, Configuracion, Inicio, Fin, Aux): donde: n es el número de discos Configuración es la configuración inicial. Inicio es el número de columna que contiene inicialmente los discos. Fin es el número de columna donde colocar los discos. Aux es el número de columna que utilizaremos como auxiliar.

Paso 0 Llamada inicial: C = [ [,,, ], [], [] ] hanoi(, C, 0,, )

Caso base 0 if n == : mover(configuracion, Inicio, Fin) # Imprimir configuración

Caso recursivo 0 else: # si n > hanoi(n-, Configuracion, Inicio, Aux, Fin) mover(configuracion, Inicio, Fin) #..Imprimir configuración... hanoi(n-, Configuracion, Aux, Fin, Inicio)

Caso recursivo 0 else: # si n > hanoi(n-, Configuracion, Inicio, Aux, Fin) mover(configuracion, Inicio, Fin) #..Imprimir configuración... hanoi(n-, Configuracion, Aux, Fin, Inicio)

Caso recursivo 0 else: # si n > hanoi(n-, Configuracion, Inicio, Aux, Fin) mover(configuracion, Inicio, Fin) #..Imprimir configuración... hanoi(n-, Configuracion, Aux, Fin, Inicio)

Caso recursivo 0 else: # si n > hanoi(n-, Configuracion, Inicio, Aux, Fin) mover(configuracion, Inicio, Fin) #..Imprimir configuración... hanoi(n-, Configuracion, Aux, Fin, Inicio)

Caso recursivo 0 else: # si n > hanoi(n-, Configuracion, Inicio, Aux, Fin) mover(configuracion, Inicio, Fin) #..Imprimir configuración... hanoi(n-, Configuracion, Aux, Fin, Inicio)

Caso recursivo 0 else: # si n > hanoi(n-, Configuracion, Inicio, Aux, Fin) mover(configuracion, Inicio, Fin) #..Imprimir configuración... hanoi(n-, Configuracion, Aux, Fin, Inicio)

Caso recursivo 0 else: # si n > hanoi(n-, Configuracion, Inicio, Aux, Fin) mover(configuracion, Inicio, Fin) #..Imprimir configuración... hanoi(n-, Configuracion, Aux, Fin, Inicio)

Paso Configuración 0: ----------------- Configuración : ----------------- Configuración : ----------------- -------- Torre -------- Torre -------- Torre -------- -------- Torre Torre -------- -------- Torre Torre Mantener un contador -------- -------- de configuraciones Torre Torre

Paso 0 [ [], [ ], [,, ], ] Número de configuración

Paso Modificar la función: def mover(configuracion, ColOrigen, ColDestino): para que, además de mover los discos de ColOrigen a ColDestino, aumente el contador contenido en Configuracion.

Paso Escritura en el fichero de salida: def hanoi(f, n, Configuracion, Inicio, Fin, Aux): Identificador del fichero en el que escribir el resultado.