SlideShare ist ein Scribd-Unternehmen logo
1 von 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.

Weitere ähnliche Inhalte

Was ist angesagt?

Scientific Computing with Python - NumPy | WeiYuan
Scientific Computing with Python - NumPy | WeiYuanScientific Computing with Python - NumPy | WeiYuan
Scientific Computing with Python - NumPy | WeiYuanWei-Yuan Chang
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda BinariaITCV
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 
Bucket sort
Bucket sortBucket sort
Bucket sorteislenp
 
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...Simplilearn
 
Naive Bayes Classifier
Naive Bayes ClassifierNaive Bayes Classifier
Naive Bayes ClassifierYiqun Hu
 
Decision Tree and Bayesian Classification
Decision Tree and Bayesian ClassificationDecision Tree and Bayesian Classification
Decision Tree and Bayesian ClassificationKomal Kotak
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programmingGopi Saiteja
 

Was ist angesagt? (20)

Scientific Computing with Python - NumPy | WeiYuan
Scientific Computing with Python - NumPy | WeiYuanScientific Computing with Python - NumPy | WeiYuan
Scientific Computing with Python - NumPy | WeiYuan
 
A greedy algorithms
A greedy algorithmsA greedy algorithms
A greedy algorithms
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
 
Detección de errores CRC
Detección de errores CRCDetección de errores CRC
Detección de errores CRC
 
Búsqueda exhaustiva
Búsqueda exhaustivaBúsqueda exhaustiva
Búsqueda exhaustiva
 
Bucket sort
Bucket sortBucket sort
Bucket sort
 
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datos
 
Naive Bayes Classifier
Naive Bayes ClassifierNaive Bayes Classifier
Naive Bayes Classifier
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Maximum sum subarray
Maximum sum subarrayMaximum sum subarray
Maximum sum subarray
 
Decision Tree and Bayesian Classification
Decision Tree and Bayesian ClassificationDecision Tree and Bayesian Classification
Decision Tree and Bayesian Classification
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programming
 
Fundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacionalFundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacional
 
Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 
Big o notation
Big o notationBig o notation
Big o notation
 

Andere mochten auch

Andere mochten auch (14)

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
 
Recursividad
RecursividadRecursividad
Recursividad
 
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
 

Ähnlich wie Recursividad

Ähnlich wie Recursividad (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
 
S04_s7_Función_exponencial_y_logaritmo.pdf
S04_s7_Función_exponencial_y_logaritmo.pdfS04_s7_Función_exponencial_y_logaritmo.pdf
S04_s7_Función_exponencial_y_logaritmo.pdf
 
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
 

Mehr von Cristian Alberto Oliva

Mehr von 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

  • 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.