SlideShare une entreprise Scribd logo
1  sur  33
C.E.C.O N° 4 (Algoritmos y lenguajes)Recursividad Integrantes: ,[object Object]
Cortés, Cristian
Diaz, María Rosa
Oliva, Cristian
Páez, María Vanesa,[object Object]
El proceso de resolver un problema reduciéndolo a uno o mas sub problemas.
 Un proceso es recursivo si forma parte de si mismo.,[object Object]
Recursividad Indirecta.,[object Object]
Reglas para realizar un Algoritmo Caso Base. Progreso. Credibilidad. Interés compuesto.
Ventajas e Inconvenientes ,[object Object]
El principal inconveniente es la ineficiencia tanto en tiempo como en memoria.,[object Object]
Las fórmulas recursivas pueden aplicarse a situaciones Matemáticas, etc.
Existen ciertas estructuras cuya definición es recursiva.,[object Object]
La recursión una estructura de selección.,[object Object]
La zona donde se guardan los datos: pila (utilizada para llamadas recursivas).,[object Object]
Se crea en la pila de un registro de activación o entorno “E”.
Almacena constantes, variables locales y parámetros formales.
Estos registros se van apilando conforme se llaman sucesivamente desde una función a otras.
Cuando finaliza la ejecución, se va liberando el espacio.,[object Object]
4!=4* 3! Ejemplo: 3!= 3*2! 2!= 2 *1! 1!= 1 *0! //Solución no estructuradaint factorial (int n) {if (n==0)                //Caso base    return 1;else                      //Caso General    return n*factorial(n-1);} 0!= 1
4!=4* 3! 4!=4* 3! 4!=4* 3! 3!= 3*2! 3!= 3*2! 3!= 6 2!= 2 *1! 2!= 2  1!= 1 *1 4!=24
[object Object],Int desde,hasta,medio,elemento,posicion; // desde y       // hasta indican los límites del array que se está mirando. int array[N];   // Dar valor a elemento.   for(desde=0,hasta=N-1;desde<=hasta;) { if(desde==hasta) // si el array sólo tiene un elemento:    { if(array[desde]==elemento) // si es la solución: posicion=desde; // darle el valor. else// si no es el valor: posicion=-1; // no está en el array.  break; // Salir del bucle.     } medio=(desde+hasta)/2; // Divide el array en dos. if(array[medio]==elemento) // Si coincide con el central:    { posicion=medio; // ese es la solución break; // y sale del bucle.     } else if(array[medio]>elemento) // si es menor: hasta=medio-1; // elige el array izquierda. else// y si es mayor:       desde=medio+1; // elige el array de la derecha.  } 2 3 4 5 6 7 8 1 9 2 3 4 1 3 4 Valor a buscar 3
[object Object],int producto (int a, int b) { if (b==0) return (0); else return (a+ producto (a, b-1)); } Producto(3,2)= 3 + producto(3,1) Producto (3,2)= 3 + 3 Producto(3,2)=6 Producto(3,1)= 3 + producto(3,0)                            = 3 + 0
Recursividad en Listas La estructura de listas es recursiva cuando (el “resto” de una lista es a su vez una lista), la mayoría de los programas sobre listas serán recursivos de forma natural. Ejemplo: Supongamos que tenemos la lista de las personas que asistirán a un a reunión y queremos averiguar si una determinada persona irá a ella. En Prolog seria: miembro(X, L)" que significa X es miembro de la lista L. 1. miembro(X, [X|Y]). 2. miembro(X, [Y|Z]) :- miembro(X,Z). Una posible pregunta al programa es: ? miembro(pedro, [maría, pedro, juan, ana]). ? miembro(pedro, [maria, pedro, juan, ana]). 2. {X1®pedro, Y1®maria, Z1® [pedro,juan,ana]} ? miembro(pedro, [pedro, juan, ana]). 1. {X2®pedro, Y2® [juan,ana]} ı  EXITO (la contestación es si)
Definición de Árbol A A C C B B G G E E F F D D Un árbol (tree) es un tipo de dato abstracto (T.D.A.) que consta de un conjunto finito T de nodos y una relación R (paternidad) entre los nodos tal que:   Hay un nodo, especialmente designado, llamado la raíz del árbol T.
Códigos de Árbol A A C C B B G G E E F F D D En Prolog seria: es_padre(B,D):- es_hijo(D,B).es_nieto(D,A):-  es_padre(B,D), es_padre(A,B).
Grafos A B C D E Un grafo (en inglés graph) es un T.D.A. que representa un conjunto finito N de nodos, llamados vértices, relacionados entre sí por un conjunto R de arcos. Grafo con 5 vértices y 6 arcos. Vértices del Grafo    N ={ A, B, C, D, E } Arcos del Grafo    R={(A, A), (A, B), (A, D), (A, C), (D, C), (C, E)}
Representación Matricial de Grafos   A                 B         C   D   E    A B 0    1   2    3   4 C D 0    1 2   3     4 0 1 2 3 4   0   1   1   0   0 E   0   0   1   0   0    1   1   0   0   0    1   0   0   0   0   0   1   0   0   0 Vértices Matriz de Adyacencia
Sucesión de Fibonacci En matemática, la sucesión de Fibonacci es la siguiente sucesión infinita de números naturales: La sucesión inicia con 0 y 1, y a partir de ahí cada elemento es la suma de los dos anteriores. 0,1,1,2,3,5,8,13……….. A cada elemento de esta sucesión se le llama número de Fibonacci. Esta sucesión fue descrita en Europa por Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computación, matemáticas y teoría de juegos. La sucesión fue descrita por Fibonacci como la solución a un problema de la cría de conejos: "Cierto hombre tenía una pareja de conejos juntos en un lugar cerrado y uno desea saber cuántos son creados a partir de este par en un año cuando es su naturaleza parir otro par en un simple mes, y en el segundo mes los nacidos parir también".
22 Ejemplo:   Serie de Fibonacci Valores: 0, 1, 1, 2, 3, 5, 8... Cada término de la serie suma los 2 anteriores. Fórmula recursiva fib(n) = fib (n - 1) + fib (n - 2) Caso base: 	Fib (0)=0; Fib (1)=1 Caso recursivo: Fib (i) = Fib (i -1) + Fib(i -2) public static int fib(int n){ if (n <= 1) return n;        //condición base 		else  return fib(n-1)+fib(n-2);    //condición recursiva }
Aplicaciones de Fibonacci Razón de oro La idea Si divides una línea en dos partes de manera que: entonces tienes la razón de oro.
Aplicaciones de Fibonacci
Fractales ,[object Object],¿Por qué se llaman fractales? El término fue propuesto por el matemático BenoîtMandelbrot en 1975 y deriva del Latín “fractus”, que significa quebrado o fracturado.

Contenu connexe

Tendances

Derivada Polinomios en C
Derivada Polinomios en CDerivada Polinomios en C
Derivada Polinomios en CAbraham
 
Teoremas y criterios de series
Teoremas y criterios de seriesTeoremas y criterios de series
Teoremas y criterios de seriesRobinson Ch
 
Biyectiva inyectiva sobreyectiva
Biyectiva inyectiva sobreyectivaBiyectiva inyectiva sobreyectiva
Biyectiva inyectiva sobreyectivaalgebragr4
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenadaEdwin Chavarria
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...Jose Emilio Labra Gayo
 
INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA Spacetoshare
 
1ra clase. Introducción a las ecuaciones diferenciales
1ra clase. Introducción a las ecuaciones diferenciales1ra clase. Introducción a las ecuaciones diferenciales
1ra clase. Introducción a las ecuaciones diferencialesJoanny Ibarbia Pardo
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 

Tendances (20)

Newton raphson
Newton raphsonNewton raphson
Newton raphson
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Determinantes propiedades
Determinantes propiedadesDeterminantes propiedades
Determinantes propiedades
 
Derivada Polinomios en C
Derivada Polinomios en CDerivada Polinomios en C
Derivada Polinomios en C
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
Teoremas y criterios de series
Teoremas y criterios de seriesTeoremas y criterios de series
Teoremas y criterios de series
 
Biyectiva inyectiva sobreyectiva
Biyectiva inyectiva sobreyectivaBiyectiva inyectiva sobreyectiva
Biyectiva inyectiva sobreyectiva
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenada
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Arboles multicamino
Arboles  multicaminoArboles  multicamino
Arboles multicamino
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
 
INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA
 
1ra clase. Introducción a las ecuaciones diferenciales
1ra clase. Introducción a las ecuaciones diferenciales1ra clase. Introducción a las ecuaciones diferenciales
1ra clase. Introducción a las ecuaciones diferenciales
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Algoritmo de quicksort
Algoritmo de quicksortAlgoritmo de quicksort
Algoritmo de quicksort
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 

En vedette

En vedette (13)

Ejercicios con matrices
Ejercicios con matricesEjercicios con matrices
Ejercicios con matrices
 
Recursividad
RecursividadRecursividad
Recursividad
 
apuntes de java
apuntes de javaapuntes de java
apuntes de java
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
 
Recursividad
RecursividadRecursividad
Recursividad
 
Grafos
GrafosGrafos
Grafos
 
grafos conexos
grafos conexosgrafos conexos
grafos conexos
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: Recursividad
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 

Similaire à Recursividad: conceptos, tipos y ejemplos

Similaire à Recursividad: conceptos, tipos y ejemplos (20)

Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
Revisión bibliográfica matemática.pdf
Revisión bibliográfica matemática.pdfRevisión bibliográfica matemática.pdf
Revisión bibliográfica matemática.pdf
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion recursividad
 
Python
PythonPython
Python
 
Genesis grupo 1
Genesis grupo 1Genesis grupo 1
Genesis grupo 1
 
Recursividad ia lili
Recursividad ia liliRecursividad ia lili
Recursividad ia lili
 
Recursividad ia lili
Recursividad ia liliRecursividad ia lili
Recursividad ia lili
 
Presentación de Dauglismar.pdf
Presentación de Dauglismar.pdfPresentación de Dauglismar.pdf
Presentación de Dauglismar.pdf
 
Evidencia 4
Evidencia 4Evidencia 4
Evidencia 4
 
Tareas plus
Tareas plus Tareas plus
Tareas plus
 
Sesión001
Sesión001Sesión001
Sesión001
 
Fibonacci
FibonacciFibonacci
Fibonacci
 
Número aureo.3.12 (3)
Número aureo.3.12 (3)Número aureo.3.12 (3)
Número aureo.3.12 (3)
 
Libro_1s mate actividades.pdf
Libro_1s mate actividades.pdfLibro_1s mate actividades.pdf
Libro_1s mate actividades.pdf
 
Unidad 1 - El número real.pdf
Unidad 1 - El número real.pdfUnidad 1 - El número real.pdf
Unidad 1 - El número real.pdf
 
Clase 12 Buscando regularidades
Clase 12 Buscando regularidadesClase 12 Buscando regularidades
Clase 12 Buscando regularidades
 
Sistemas numéricos
Sistemas numéricosSistemas numéricos
Sistemas numéricos
 
Logica matematica y algebra
Logica matematica y algebraLogica matematica y algebra
Logica matematica y algebra
 
Matematicabasica1
Matematicabasica1Matematicabasica1
Matematicabasica1
 
Matematicabasica1
Matematicabasica1Matematicabasica1
Matematicabasica1
 

Plus de Cristian Alberto Oliva

Plus de Cristian Alberto Oliva (9)

Diseño multimedia intro css
Diseño multimedia intro cssDiseño multimedia intro css
Diseño multimedia intro css
 
Introduccion xhtml
Introduccion xhtmlIntroduccion xhtml
Introduccion xhtml
 
HTML5, CSS3, JQUERY Y BOOSTRAP
HTML5, CSS3, JQUERY Y BOOSTRAPHTML5, CSS3, JQUERY Y BOOSTRAP
HTML5, CSS3, JQUERY Y BOOSTRAP
 
Cronograma 13 encuentor inf definitivo
Cronograma 13 encuentor inf  definitivoCronograma 13 encuentor inf  definitivo
Cronograma 13 encuentor inf definitivo
 
Cronograma 13 encuentor inf (2)
Cronograma 13 encuentor inf (2)Cronograma 13 encuentor inf (2)
Cronograma 13 encuentor inf (2)
 
Horario tui 2 cuat 2015 lic cristian oliva
Horario tui 2 cuat 2015   lic cristian olivaHorario tui 2 cuat 2015   lic cristian oliva
Horario tui 2 cuat 2015 lic cristian oliva
 
Horario h tui 2 cuat 2015 Lic cristian oliva
Horario h tui 2 cuat 2015   Lic cristian olivaHorario h tui 2 cuat 2015   Lic cristian oliva
Horario h tui 2 cuat 2015 Lic cristian oliva
 
Horario tui 2 cuat 2015 lic cristian oliva
Horario tui 2 cuat 2015   lic cristian olivaHorario tui 2 cuat 2015   lic cristian oliva
Horario tui 2 cuat 2015 lic cristian oliva
 
Programacion de Cadenas
Programacion de CadenasProgramacion de Cadenas
Programacion de Cadenas
 

Recursividad: conceptos, tipos y ejemplos

  • 1.
  • 5.
  • 6. El proceso de resolver un problema reduciéndolo a uno o mas sub problemas.
  • 7.
  • 8.
  • 9. Reglas para realizar un Algoritmo Caso Base. Progreso. Credibilidad. Interés compuesto.
  • 10.
  • 11.
  • 12. Las fórmulas recursivas pueden aplicarse a situaciones Matemáticas, etc.
  • 13.
  • 14.
  • 15.
  • 16. Se crea en la pila de un registro de activación o entorno “E”.
  • 17. Almacena constantes, variables locales y parámetros formales.
  • 18. Estos registros se van apilando conforme se llaman sucesivamente desde una función a otras.
  • 19.
  • 20. 4!=4* 3! Ejemplo: 3!= 3*2! 2!= 2 *1! 1!= 1 *0! //Solución no estructuradaint factorial (int n) {if (n==0) //Caso base return 1;else //Caso General return n*factorial(n-1);} 0!= 1
  • 21. 4!=4* 3! 4!=4* 3! 4!=4* 3! 3!= 3*2! 3!= 3*2! 3!= 6 2!= 2 *1! 2!= 2 1!= 1 *1 4!=24
  • 22.
  • 23.
  • 24. Recursividad en Listas La estructura de listas es recursiva cuando (el “resto” de una lista es a su vez una lista), la mayoría de los programas sobre listas serán recursivos de forma natural. Ejemplo: Supongamos que tenemos la lista de las personas que asistirán a un a reunión y queremos averiguar si una determinada persona irá a ella. En Prolog seria: miembro(X, L)" que significa X es miembro de la lista L. 1. miembro(X, [X|Y]). 2. miembro(X, [Y|Z]) :- miembro(X,Z). Una posible pregunta al programa es: ? miembro(pedro, [maría, pedro, juan, ana]). ? miembro(pedro, [maria, pedro, juan, ana]). 2. {X1®pedro, Y1®maria, Z1® [pedro,juan,ana]} ? miembro(pedro, [pedro, juan, ana]). 1. {X2®pedro, Y2® [juan,ana]} ı EXITO (la contestación es si)
  • 25. Definición de Árbol A A C C B B G G E E F F D D Un árbol (tree) es un tipo de dato abstracto (T.D.A.) que consta de un conjunto finito T de nodos y una relación R (paternidad) entre los nodos tal que: Hay un nodo, especialmente designado, llamado la raíz del árbol T.
  • 26. Códigos de Árbol A A C C B B G G E E F F D D En Prolog seria: es_padre(B,D):- es_hijo(D,B).es_nieto(D,A):- es_padre(B,D), es_padre(A,B).
  • 27. Grafos A B C D E Un grafo (en inglés graph) es un T.D.A. que representa un conjunto finito N de nodos, llamados vértices, relacionados entre sí por un conjunto R de arcos. Grafo con 5 vértices y 6 arcos. Vértices del Grafo N ={ A, B, C, D, E } Arcos del Grafo R={(A, A), (A, B), (A, D), (A, C), (D, C), (C, E)}
  • 28. Representación Matricial de Grafos A B C D E A B 0 1 2 3 4 C D 0 1 2 3 4 0 1 2 3 4 0 1 1 0 0 E 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 Vértices Matriz de Adyacencia
  • 29. Sucesión de Fibonacci En matemática, la sucesión de Fibonacci es la siguiente sucesión infinita de números naturales: La sucesión inicia con 0 y 1, y a partir de ahí cada elemento es la suma de los dos anteriores. 0,1,1,2,3,5,8,13……….. A cada elemento de esta sucesión se le llama número de Fibonacci. Esta sucesión fue descrita en Europa por Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computación, matemáticas y teoría de juegos. La sucesión fue descrita por Fibonacci como la solución a un problema de la cría de conejos: "Cierto hombre tenía una pareja de conejos juntos en un lugar cerrado y uno desea saber cuántos son creados a partir de este par en un año cuando es su naturaleza parir otro par en un simple mes, y en el segundo mes los nacidos parir también".
  • 30. 22 Ejemplo: Serie de Fibonacci Valores: 0, 1, 1, 2, 3, 5, 8... Cada término de la serie suma los 2 anteriores. Fórmula recursiva fib(n) = fib (n - 1) + fib (n - 2) Caso base: Fib (0)=0; Fib (1)=1 Caso recursivo: Fib (i) = Fib (i -1) + Fib(i -2) public static int fib(int n){ if (n <= 1) return n; //condición base else return fib(n-1)+fib(n-2); //condición recursiva }
  • 31. Aplicaciones de Fibonacci Razón de oro La idea Si divides una línea en dos partes de manera que: entonces tienes la razón de oro.
  • 33.
  • 34.
  • 37. Aplicaciones electrónicas.Teoría del Caos Teoría matemática encargada de realizar sistemas con comportamiento impredecibles y aparentemente aleatorios.
  • 38.
  • 39.
  • 40. Girar 60° a la izquierda.
  • 42. Girar 60° a la derecha.
  • 43. Girar 60° a la derecha.
  • 45. Girar 60° a la izquierda.
  • 46.
  • 47. Triangulo de Sierpinski Sierpinski = 0 Sierpinski = 1 Sierpinski = 2
  • 48.