Tarea 1

804 views

Published on

Practicando con Bash

  • Be the first to comment

  • Be the first to like this

Tarea 1

  1. 1. Tarea I (Bash) Curso: Herramientas Programables de Cómputo Científico Estudiante: M.C. Ana Laura González Estrada
  2. 2. Introducción <ul>Para practicar con Bash, utilicé el famoso juego de las torres de Hanoi. El juego lo programé en C y luego lo automaticé usando bash. A continuación doy una breve explicación del juego y luego el desarrollo de la práctica. </ul>
  3. 3. Torres de Hanoi <ul>El juego de las Torres de Hanoi fue ideado por el matemático francés Édouard Lucas a finales del siglo XIX. El juego consta de tres postes montados sobre un tablero y n discos de diversos tamaños con agujeros en sus centros. </ul>
  4. 4. Objetivo y reglas <ul>Objetivo: Dados todos los discos apilados en un poste, el problema consiste en transferir los discos a otro poste. Reglas: </ul><ul>Si un disco está en algún poste, sólo se puede colocar sobre tal disco otro con diámetro menor. Solo se puede mover un disco a la vez. </ul>
  5. 5. Solución <ul>Para cumplir el objetivo en la mínima cantidad de movimientos, si tenemos n discos en el primer poste y los queremos pasar al tercero se puede demostrar que los pasos son: Mover los primeros n-1 discos al 2º poste. Mover el n-ésimo disco al 3er poste. Mover los n-1 discos del 2º al 3er poste. Por lo cual el algoritmo para resolverlo es recursivo. </ul>
  6. 6. Solución <ul>Para cumplir el objetivo en la mínima cantidad de movimientos, si tenemos n discos en el primer poste y los queremos pasar al tercero se puede demostrar que los pasos son: Mover los primeros n-1 discos al 2º poste. Mover el n-ésimo disco al 3er poste. Mover los n-1 discos del 2º al 3er poste. Por lo cual el algoritmo para resolverlo es recursivo, el cual ha sido programado por muchas personas. </ul>
  7. 7. Código en C
  8. 8. Código en C continuación
  9. 9. Corrida con 3 discos
  10. 10. Corrida 4 discos
  11. 11. Corrida con 15 discos
  12. 12. Corrida con 17 discos
  13. 13. Corrida con 23 discos
  14. 14. Automatizando en Bash <ul>Lo que se hizo en Bash fue automatizarlo de tal manera que le podemos dar el número de repeticiones y un número máximo de discos. En cada repetición Bash genera un número al azar menor o igual al número máximo de discos y manda llamar al programa en C. Guarda cada salida en un archivo, da el tiempo en segundos de cada prueba en la pantalla, así como el tiempo final. </ul>
  15. 15. Código en Bash
  16. 16. 10 Pruebas y Máximo 22 discos
  17. 17. Archivo de salido para prueba 10
  18. 18. 10 Pruebas y máximo 25 discos
  19. 19. Bibliografía <ul>Richard Johnsonbaugh (1999). Matemáticas Discretas (4a ed.) México, Prentice Hall. http://tldp.org/LDP/abs/html/part1.html http://www.linux-es.org/node/70 <li>http://code.google.com/p/linuxeden/downloads/detail?name=Bash_Quick_Reference.pdf </li></ul>

×