SlideShare una empresa de Scribd logo
1 de 27
Eldon Centella Ribera
   Cualquier proceso puede ser definido de forma
    iterativa y de forma recursiva.
        􀃖 Un proceso iterativo es aquél que requiere de la
        repetición explícita de cierta acción.
        􀃖 Un proceso es recursivo si está definido total o
        parcialmente en términos de sí mismo.
   Para calcular 4!, por ejemplo, se puede utilizar
    un proceso iterativo o uno recursivo.
   De manera iterativa:
   4! = 1 * 2 * 3 * 4 = 24
   Para definir 4! de manera recursiva se tiene que
    definirlo en términos de factorial, es decir, en la
    definición (parte derecha de la igualdad) tiene
    que aparecer el factorial.
   De manera recursiva:

         4! = 4 * 3!
   Se observa que en el cálculo de 4! fue muy
    importante el hecho de que 0! es igual a 1 ¿Qué
    hubiera pasado si 0! se calculará como se
    calculó los demás factoriales? Nunca se hubiera
    terminado el proceso, o sea, tendríamos un
    proceso infinito.
   Entonces, toda definición recursiva debe tener,
    al menos, una definición base. Esta definición
    base proporciona la solución de salida de la
    recursividad.
   Para calcular 4!, 3!, 2! y 1! Se uso una
    definición recursiva, por lo que se estuvo
    entrando en recursión y cuando se alcanzó la
    definición base se comenzó a salir de recursión.
   Conclusiones:
       Un proceso es recursivo si está definido total o
        parcialmente es términos de sí mismo.
       Todo proceso recursivo debe tener, al menos: una
        definición base y una definición recursiva.
   La solución recursiva a un problema de
    repetición se obtiene respondiendo dos
    preguntas:
       1. ¿Cómo se resuelve el caso más pequeño del
        problema?


       La respuesta a esta pregunta debe ser no-recursiva y
        plantear una condición de salida, es decir,
        proporcionar la definición base.
   En el cálculo de factorial, la pregunta sería:
    ¿cuál es el número más pequeño para el que se
    puede obtener factorial?


   2. ¿Cómo se resuelve un caso general del
    problema, sabiendo que ya se tiene el caso
    anterior más pequeño?
   De tal forma que, la definición recursiva de n!
    es:
       a) n! = 1 si n = 0 􀃖 Definición base
       b) n! = n * (n – 1)! si n > 0 􀃖 Definición recursiva
   Dependiendo del problema que implemente el
    módulo éste diagrama se puede ver
    modificado.

    Por ejemplo, si tiene más de una definición
    base, si tiene más de una definición recursiva o
    si en la solución recursiva tiene que realizar
    alguna operación antes de volverse a ejecutar o
    no.
   1o. Hace que la función tome el valor de lo que
    se está regresando. En factorial: si n == 0
    factorial = 1 sino factorial= n * factorial(n – 1)
   2o. Termina la ejecución de la función,
    regresando el control de la ejecución al módulo
    en que fue llamada (a la instrucción que se
    debe ejecutar después de que la función fue
    llamada).
   La solución recursiva de un problema se
    obtiene respondiendo dos preguntas: ¿cómo se
    resuelve el caso más pequeño? y ¿cómo se
    resuelve un caso general, sabiendo que ya se
    tiene el caso anterior más pequeño?

   Para implementar soluciones recursivas se
    utilizan los módulos: las funciones (int, float,
    double, etc.).
   El return de una función realiza dos
    operaciones: asigna a la función el valor que
    regresa y termina la ejecución de la misma,
    regresando el control a la siguiente instrucción
    que se tiene que realizar, después de la llamada
    a la función.
   public static void imprimeNaturales(int
    n)
   {
   if (n == 1)
   System.out.println(“1”);
   else
   {
   System.out.println(n);
   imprimeNaturales(n – 1);
   } _________________________________ 2
   }
   public static void main(String args[])
   {
   ….
   imprimeNaturales(5);
   System.out.println(“Fin del proceso”);
    ______ 1
   }
   Considerar un ejemplo más, la serie de los
    números de Fibonacci cuya definición ya se nos
    da de manera recursiva. Vamos a escribir su
    implementación y posteriormente haremos la
    representación de la pila.
       F0 = 1
       F1 = 1
       Fn = Fn -1 + Fn – 2 si n > 1
    Para simplificar el código.
     Cuando la estructura de datos es recursiva
     ejemplo : árboles.


¿Cuándo no usar recursividad?
  Cuando los métodos usen arreglos largos.

     Cuando el método cambia de manera
     impredecible de campos.
     Cuando las iteraciones sean la mejor
     opción.
                         25
   Cuando un procedimiento incluye una
    llamada a sí mismo se conoce como
    recursión directa.




                   26
   Cuando un procedimiento llama a otro
    procedimiento y éste causa que el
    procedimiento original sea invocado, se conoce
    como recursión indirecta.


NOTA: Cuando un procedimiento recursivo se llama recursivamente
  a si mismo varias veces, para cada llamada se crean copias
  independientes de las variables declaradas en el procedimiento.




                               27

Más contenido relacionado

La actualidad más candente (19)

Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Recursividad
RecursividadRecursividad
Recursividad
 
2.1 recursividad
2.1 recursividad2.1 recursividad
2.1 recursividad
 
Cap1.1 recursividad
Cap1.1 recursividadCap1.1 recursividad
Cap1.1 recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++
 
Recursividad en POO - Java
Recursividad en POO - JavaRecursividad en POO - Java
Recursividad en POO - Java
 
Técnica del backtracking o vuelta atrás
Técnica del backtracking o vuelta atrásTécnica del backtracking o vuelta atrás
Técnica del backtracking o vuelta atrás
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructura de dato unidad 2
Estructura de dato unidad 2Estructura de dato unidad 2
Estructura de dato unidad 2
 
Recursividad en Java
Recursividad en JavaRecursividad en Java
Recursividad en Java
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Tipos de Datos Abstractos.
Tipos de Datos Abstractos.Tipos de Datos Abstractos.
Tipos de Datos Abstractos.
 
6.funciones y recursividad en c++
6.funciones y recursividad en c++6.funciones y recursividad en c++
6.funciones y recursividad en c++
 

Similar a Recursividad 100329105433-phpapp01 (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
2 clase 1_recursividad
2 clase 1_recursividad2 clase 1_recursividad
2 clase 1_recursividad
 
recursividad
recursividadrecursividad
recursividad
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.pptx
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
 
Recursividad
RecursividadRecursividad
Recursividad
 
II Unidad
II UnidadII Unidad
II Unidad
 
II Unidad
II UnidadII Unidad
II Unidad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
Enfoques
EnfoquesEnfoques
Enfoques
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Recursión
RecursiónRecursión
Recursión
 
Modulo4
Modulo4Modulo4
Modulo4
 
Derivadas Daniela Urbina Uribe Extensión San Cristóbal
Derivadas Daniela Urbina Uribe Extensión San Cristóbal Derivadas Daniela Urbina Uribe Extensión San Cristóbal
Derivadas Daniela Urbina Uribe Extensión San Cristóbal
 
Unidad 2 p1
Unidad 2 p1Unidad 2 p1
Unidad 2 p1
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
 

Último

Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaJuan Carlos Fonseca Mata
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 

Último (20)

Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - Botánica
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 

Recursividad 100329105433-phpapp01

  • 2. Cualquier proceso puede ser definido de forma iterativa y de forma recursiva.  􀃖 Un proceso iterativo es aquél que requiere de la repetición explícita de cierta acción.  􀃖 Un proceso es recursivo si está definido total o parcialmente en términos de sí mismo.
  • 3. Para calcular 4!, por ejemplo, se puede utilizar un proceso iterativo o uno recursivo.  De manera iterativa:  4! = 1 * 2 * 3 * 4 = 24
  • 4. Para definir 4! de manera recursiva se tiene que definirlo en términos de factorial, es decir, en la definición (parte derecha de la igualdad) tiene que aparecer el factorial.  De manera recursiva: 4! = 4 * 3!
  • 5.
  • 6. Se observa que en el cálculo de 4! fue muy importante el hecho de que 0! es igual a 1 ¿Qué hubiera pasado si 0! se calculará como se calculó los demás factoriales? Nunca se hubiera terminado el proceso, o sea, tendríamos un proceso infinito.
  • 7. Entonces, toda definición recursiva debe tener, al menos, una definición base. Esta definición base proporciona la solución de salida de la recursividad.
  • 8. Para calcular 4!, 3!, 2! y 1! Se uso una definición recursiva, por lo que se estuvo entrando en recursión y cuando se alcanzó la definición base se comenzó a salir de recursión.
  • 9. Conclusiones:  Un proceso es recursivo si está definido total o parcialmente es términos de sí mismo.  Todo proceso recursivo debe tener, al menos: una definición base y una definición recursiva.
  • 10. La solución recursiva a un problema de repetición se obtiene respondiendo dos preguntas:  1. ¿Cómo se resuelve el caso más pequeño del problema?  La respuesta a esta pregunta debe ser no-recursiva y plantear una condición de salida, es decir, proporcionar la definición base.
  • 11. En el cálculo de factorial, la pregunta sería: ¿cuál es el número más pequeño para el que se puede obtener factorial?  2. ¿Cómo se resuelve un caso general del problema, sabiendo que ya se tiene el caso anterior más pequeño?
  • 12. De tal forma que, la definición recursiva de n! es:  a) n! = 1 si n = 0 􀃖 Definición base  b) n! = n * (n – 1)! si n > 0 􀃖 Definición recursiva
  • 13.
  • 14. Dependiendo del problema que implemente el módulo éste diagrama se puede ver modificado.  Por ejemplo, si tiene más de una definición base, si tiene más de una definición recursiva o si en la solución recursiva tiene que realizar alguna operación antes de volverse a ejecutar o no.
  • 15.
  • 16. 1o. Hace que la función tome el valor de lo que se está regresando. En factorial: si n == 0 factorial = 1 sino factorial= n * factorial(n – 1)
  • 17. 2o. Termina la ejecución de la función, regresando el control de la ejecución al módulo en que fue llamada (a la instrucción que se debe ejecutar después de que la función fue llamada).
  • 18. La solución recursiva de un problema se obtiene respondiendo dos preguntas: ¿cómo se resuelve el caso más pequeño? y ¿cómo se resuelve un caso general, sabiendo que ya se tiene el caso anterior más pequeño?  Para implementar soluciones recursivas se utilizan los módulos: las funciones (int, float, double, etc.).
  • 19. El return de una función realiza dos operaciones: asigna a la función el valor que regresa y termina la ejecución de la misma, regresando el control a la siguiente instrucción que se tiene que realizar, después de la llamada a la función.
  • 20. public static void imprimeNaturales(int n)  {  if (n == 1)  System.out.println(“1”);  else  {  System.out.println(n);  imprimeNaturales(n – 1);  } _________________________________ 2  }  public static void main(String args[])  {  ….  imprimeNaturales(5);  System.out.println(“Fin del proceso”); ______ 1  }
  • 21. Considerar un ejemplo más, la serie de los números de Fibonacci cuya definición ya se nos da de manera recursiva. Vamos a escribir su implementación y posteriormente haremos la representación de la pila.  F0 = 1  F1 = 1  Fn = Fn -1 + Fn – 2 si n > 1
  • 22.
  • 23.
  • 24.
  • 25. Para simplificar el código.  Cuando la estructura de datos es recursiva ejemplo : árboles. ¿Cuándo no usar recursividad?  Cuando los métodos usen arreglos largos.  Cuando el método cambia de manera impredecible de campos.  Cuando las iteraciones sean la mejor opción. 25
  • 26. Cuando un procedimiento incluye una llamada a sí mismo se conoce como recursión directa. 26
  • 27. Cuando un procedimiento llama a otro procedimiento y éste causa que el procedimiento original sea invocado, se conoce como recursión indirecta. NOTA: Cuando un procedimiento recursivo se llama recursivamente a si mismo varias veces, para cada llamada se crean copias independientes de las variables declaradas en el procedimiento. 27