0% encontró este documento útil (0 votos)
111 vistas12 páginas

Ejemplos Recursivos

Este documento trata sobre la recursividad y proporciona ejemplos de su uso. Explica que la recursividad es una poderosa herramienta de programación donde un método se invoca a sí mismo de forma directa o indirecta. Presenta ejemplos recursivos como el factorial de un número, invertir un número e resolver un laberinto. También discute cuando usar recursividad y algoritmos de backtracking como la solución de las ocho reinas y Sudoku.

Cargado por

JaireCko StyLee
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
111 vistas12 páginas

Ejemplos Recursivos

Este documento trata sobre la recursividad y proporciona ejemplos de su uso. Explica que la recursividad es una poderosa herramienta de programación donde un método se invoca a sí mismo de forma directa o indirecta. Presenta ejemplos recursivos como el factorial de un número, invertir un número e resolver un laberinto. También discute cuando usar recursividad y algoritmos de backtracking como la solución de las ocho reinas y Sudoku.

Cargado por

JaireCko StyLee
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

TEMA 6

Recursividad

V1.1

Manuel Pereira Gonzlez

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Introduccin
Poderosa herramienta de programacin Alternativa a algoritmos iterativos Soluciones elegantes a problemas difciles de resolver de otro modo Un mtodo es recursivo si contiene invocaciones a s mismo Una llamada a un mtodo recursivo puede generar una o ms invocaciones al mismo mtodo, que a su ve genera otras,

Introduccin
Condiciones que debe cumplir un mtodo recursivo: Asegurar que existe una condicin de salida, en la que no se producen llamadas recursivas (caso base) Asegurar que se cubren todos los posibles casos entre el base y los no base Cada llamada, en el caso no base, conduce a problemas cada vez ms pequeos que terminarn en el caso base

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Ejemplo: Factorial
Definicin del factorial (definicin recursiva): n! = n * (n-1)! , para n > 1 1! = 1 Casos y Soluciones:
Casos
n = 1 (caso base) n>1

Soluciones
return 1 return n * factorial(n 1)

Ejemplo: Factorial

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Ejemplo: Invertir un Nmero

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Ejemplo: Resolver Laberinto

Ejemplo: Resolver Laberinto

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Cundo utilizar recursividad


En general, las soluciones recursivas son menos eficientes que las iterativas (coste mayor en tiempo y memoria). Consejos: Los algoritmos que por naturaleza son recursivos y donde la solucin iterativa es complicada y debe manejarse explcitamente una pila para emular las llamadas recursivas, deben resolverse por mtodos recursivos Cuando haya una solucin obvia al problema por iteracin, debe evitarse la recursividad

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Algoritmos de Backtracking
El backtracking o vuelta atrs es una tcnica algortmica de resolucin general de problemas mediante una bsqueda sistemtica de soluciones. Se descompone la tarea a realizar en tareas parciales y se prueba sistemticamente cada una de estas, que a su vez se descompondrn en subtareas Cuando al elegir una tarea se comprueba que no lleva a una solucin, se debe volver atrs, y probar con otra

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Algoritmos de Backtracking: Ocho Reinas

Algoritmos de Backtracking: Ocho Reinas

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

10

Algoritmos de Backtracking: Sudoku

Algoritmos de Backtracking: Sudoku

11

Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen

Resumen
Introduccin Mtodo que se invoca a s mismo Soluciones recursivas vs iterativas Ejemplos Factorial Invertir un Nmero Resolver Laberinto
n! = n * (n-1)! 1! = 1

Cundo utilizar Normalmente menos eficiente Recomendado si solucin iterativa difcil y problema de naturaleza recursiva Algoritmos de Backtracking Las Ocho Reinas Sudoku

12

También podría gustarte