Recursión en programación

Slides:



Advertisements
Presentaciones similares
PROPIEDADES DE EXPONENTES, RADICALES
Advertisements

Capítulo 36 - Lentes Presentación PowerPoint de
Resolución aproximada de ecuaciones Ejemplos
Continuidad Definición de Continuidad
Capítulo 6 Demanda.
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Transformaciones geométricas
Matemáticas Computacionales
ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Estructura selectiva anidada
Traslación y composición
Funciones y recursividad
TEORÍA DE CONJUNTOS.
VERDADERO TAMAÑO DE FIGURAS PLANAS EN POSICIÓN OBLICUA
Unidad II: Teoría de Conjuntos.
TEÓRIA DE CONJUNTOS Profesor: Rubén Alva Cabrera.
Sea f: D n  , una función definida en un conjunto abierto D de n.
Punteros Universidad Nacional Mayor de San Marcos
Mat. Juan Jiménez Krassel
UNIVERSIDAD LATINA (UNILA) II.- ANALISIS DE ALGORITMOS
NÚMEROS REALES ( IR ) Profesor José Mardones Cuevas
ÍNDICE Conjuntos Partes de un conjunto. Operaciones.
ESPACIOS VECTORIALES.
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Programación I Teoría VI: Recursividad
FUNDAMENTOS DE LA TEORÍA DE CONJUNTOS
Teoría de Grafos.
PERPENDICULARIDAD.
Tema 9 Estructuras.
GEOMETRIA.
TRANSFORMACIONES ISOMÉTRICAS EN EL PLANO CARTESIANO
Matemáticas para Ciencias de la Computación MCC3182 Profesor: Claudio Gutiérrez Soto Página Web:
Análisis y Diseño de Algoritmos. Propiedades : f ( n )  O ( f ( n ) ) a ) O ( f ( n ) )  O ( g ( n ) )  f ( n )  g ( n )
Estructura de Datos y Algoritmos
Matemáticas para Ciencias de la Computación MCC3182
Análisis de algoritmos
Inducción Matemática Objetivos Subtemas Proceso de deducción.
Graficación II. Algoritmos.
Exponentes y Radicales Ernesto S. Pérez-Cisneros
Universidad Autónoma San Francisco CARRERA PROFESIONAL: Lengua, Traducción e Interpretación Asignatura: MATEMÁTICA Tema: “SISTEMA FORMAL”
1-Comprender el principio de inducción completa.
Matrices y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
DEPARTAMENTO DE MATEMÁTICAS
Curso de Teoría del Autómata
TEÓRIA DE CONJUNTOS Docente: Jesús Huaynalaya García.
CANTIDADES ESCALARES Son aquellas que sólo requieren para su determinación una magnitud. Ejemplo. masa, potencia, energía.
CALCULO DIFERENCIAL E INTEGRAL TAREA 12
VALOR ABSOLUTO Y LOS NÚMEROS REALES
Unidad III: Cuarto Año Medio Geometría “Vectores”
Ing. Betty Suárez Torres
Homotecias Cuando cambias una figura de tamaño se hace más grande o más pequeño. ... pero es similar: los ángulos no cambian Los tamaños relativos son.
Natalia Luengas Décimo b Física
Traslación.
Métodos de la geometría
Elementos: Artes Visuales
1.3VECTORES.
Unidad V Recursión. Objetivos del Aprendizaje Explicar el concepto de recursión. Discutir las diferentes condiciones que deben ser satisfechas para que.
Introducción a los TADs
Graficas en la pantalla 2D. Generalidades Para visualizar la gráfica correspondiente a una función de una variable o una ecuación de dos variables se.
V)-Si una línea recta corta a otras dos, de tal manera que la suma de los dos ángulos interiores del mismo lado sea menor que dos rectos, las otras.
Matrices Pág. 1. Matrices Pág. 2 Se llama matriz traspuesta de A, y se representa por A t a la matriz que resulta de intercambiar las filas y las columnas.
Algoritmos y estructura de datos en I.O. Arboles Generales.
TEÓRIA DE CONJUNTOS.
Nociones Inclusión Igualdad
El movimiento Primeras definiciones: posición, movimiento, reposo, partícula, trayectoria, distancia recorrida y desplazamiento.
GEOMETRÍA EUCLIDEANA Conceptos Básicos.
VECTORES CONCEPTO DE DIRECCION ESCALARES Y VECTORES
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada TIPOS ABSTRACTOS DE DATOS TAD Tema: TIPOS ABSTRACTOS DE DATOS TAD Subtema: LISTAS.
El Principio de Inducción D EFINICIÓN Un conjunto A se llama inductivo sii satisface las siguientes dos propiedades i)0  A ii)  n  A se tiene n+1 
Transcripción de la presentación:

Recursión en programación

Recursión en programación Inducción matemática Se utiliza para hacer evidente que ciertas proposiciones son verdaderas para todos los enteros positivos. Axioma: suponer que S representa al conjunto de enteros y tiene las propiedades siguientes 1.S contiene al entero 1 2. (propiedad recurrente) siempre que S contiene al entero k, contiene también a k+1 Si k=1 entonces S contiene a k+1=2 Si k=2 entonces S contiene a k+1=3 etc.. Conclusión: si n es cualquier entero positivo,entonces n está en S.

Curvas de Hilbert Sea Hj una curva de Hilbert en donde j = orden de la curva con j > 0. De esta forma: Hj+1 se obtiene con la composición de 4 curvas ½(Hj) Las 4 curvas de Hj se unen con 3 líneas de conexión Así, H2 se compone de 4 curvas ½(H1 ) unidas con tres líneas rectas en distintas orientaciones

Curvas de Hilbert Representación: denotaremos a través de A, B, C y D, a cuatro curvas de orden 1 con diferentes orientaciones

Curvas de Hilbert Representación general: Observaciones: La recursión se da en forma directa o transitiva Las flechas indican la dirección de las líneas que unen a las curvas

Curvas de Hilbert Curva H2 con orientación A:

Curvas de Hilbert Comparación

Curvas de Hilbert Consideraciones: Existe el procedimiento proc dibuja_linea(ent direccion, ent tamano) La dirección de la línea se define con un entero a partir de donde se encuentra ubicado el cursor, la convención es:

Curvas de Hilbert Algoritmo de las curvas de Hilbert Proc A(ent orden, ent tamano) comienza si (orden > 0) entonces D(orden-1,tamano); dibuja_linea(2,tamano); A(orden-1,tamano); dibuja_linea(3,tamano); dibuja_linea(0,tamano); B(orden-1,tamano); Termina Proc B(ent orden, ent tamano) comienza si (orden > 0) entonces C(orden-1,tamano); dibuja_linea(1,tamano); B(orden-1,tamano); dibuja_linea(0,tamano); dibuja_linea(3,tamano); A(orden-1,tamano); Termina

Curvas de Hilbert Proc C(ent orden, ent tamano) comienza si (orden > 0) entonces B(orden-1,tamano); dibuja_linea(0,tamano); C(orden-1,tamano); dibuja_linea(1,tamano); dibuja_linea(2,tamano); D(orden-1,tamano); termina Proc D(ent orden ent tamano) comienza si (orden > 0) entonces A(orden-1,tamano); dibuja_linea(3,tamano); D(orden-1,tamano); dibuja_linea(2,tamano); dibuja_linea(1,tamano); C(orden-1,tamano); termina

Curvas de Hilbert Los estructuras fractales en general tienen la propiedad de auto-similitud. Es decir, si observamos una parte de la estructura como con un microscopio lo que observamos es similar, a lo que observamos a simple vista (propiedad recurrente).

Curvas de Hilbert

Ejemplo de recursión Dado un array constituido de números enteros y que contiene N elementos siendo N >= 1, devolver el elemento mayor. int mayor(int numeros[], int posicion) { int aux; if (posicion == 0) return numeros[posicion]; else { aux = mayor(numeros, posicion-1); if (numeros[posicion] > aux) else return aux; } } ... int numeros[5] = {2,4,1,-3,-1}; int N = 5; printf("%d\n", mayor(numeros, 4));