Práctica 2 - Ejercicio 2.8
|
|
|
- Benito Ferreyra Montero
- hace 8 años
- Vistas:
Transcripción
1 Algoritmos y Estructura de Datos III Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 27 de Marzo de 2013
2 2.8 - Euclides 2.8. a. Escribir el algoritmo de Euclides para calcular el máximo común divisor entre 2 números b y c en forma recursiva y no recursiva. Mostrar que su complejidad es O(min{b,c}). Puede construir un ejemplo (un peor caso) donde esta complejidad efectivamente se alcance? Puede hacerlo para b y c tan grandes como se desee?
3 Euclides - Repaso Regla de euclides Si b,c enteros positivos y b c luego mcd(b, c) = mcd(c, b mod c).
4 Euclides - Repaso Regla de euclides Si b,c enteros positivos y b c luego mcd(b, c) = mcd(c, b mod c). Prueba Basta mostrar que mcd(b, c) = mcd(c, b c).
5 Euclides - Repaso Regla de euclides Si b,c enteros positivos y b c luego mcd(b, c) = mcd(c, b mod c). Prueba Basta mostrar que mcd(b, c) = mcd(c, b c). Si g b y g c g b c: mcd(b, c) mcd(c, b c).
6 Euclides - Repaso Regla de euclides Si b,c enteros positivos y b c luego mcd(b, c) = mcd(c, b mod c). Prueba Basta mostrar que mcd(b, c) = mcd(c, b c). Si g b y g c g b c: mcd(b, c) mcd(c, b c). b = g k 1, c = g k 2, b c = g k 1 g k 2 = g (k 1 k 2 )
7 Euclides - Repaso Regla de euclides Si b,c enteros positivos y b c luego mcd(b, c) = mcd(c, b mod c). Prueba Basta mostrar que mcd(b, c) = mcd(c, b c). Si g b y g c g b c: mcd(b, c) mcd(c, b c). b = g k 1, c = g k 2, b c = g k 1 g k 2 = g (k 1 k 2 ) : Busco el mayor g posible. Sirve para (b, c) sirve para (c, b c), pero talvez haya g > g que divida (c, b c).
8 Euclides - Repaso Regla de euclides Si b,c enteros positivos y b c luego mcd(b, c) = mcd(c, b mod c). Prueba Basta mostrar que mcd(b, c) = mcd(c, b c). Si g b y g c g b c: mcd(b, c) mcd(c, b c). b = g k 1, c = g k 2, b c = g k 1 g k 2 = g (k 1 k 2 ) : Busco el mayor g posible. Sirve para (b, c) sirve para (c, b c), pero talvez haya g > g que divida (c, b c). Si g b c y g c g b : mcd(b, c) mcd(b c, c).
9 2.8. a. Algoritmo recursivo Algorithm 1: Euclides-Recursivo Data: b, c Result: mcd(b, c) if c = 0 then return b else return Euclides-Recursivo(c, b mod c)
10 2.8. a. Algoritmo no recursivo Algorithm 2: Euclides-Iterativo Data: b, c Result: mcd(b, c) while c 0 do t := c c := b mod t b := t return b
11 2.8. a. Complejidad Mostrar que la complejidad temporal está acotada por: O(min{b, c}).
12 2.8. a. Complejidad Mostrar que la complejidad temporal está acotada por: O(min{b, c}). Qué número es menor luego de la primer iteración?
13 2.8. a. Complejidad Mostrar que la complejidad temporal está acotada por: O(min{b, c}). Qué número es menor luego de la primer iteración? (b, c) (c, b mod c)
14 2.8. a. Complejidad Mostrar que la complejidad temporal está acotada por: O(min{b, c}). Qué número es menor luego de la primer iteración? (b, c) (c, b mod c) Comparar c vs b mod c:
15 2.8. a. Complejidad Mostrar que la complejidad temporal está acotada por: O(min{b, c}). Qué número es menor luego de la primer iteración? (b, c) (c, b mod c) Comparar c vs b mod c: b < c c c b > c b b b mod c c c b mod c
16 2.8. a. Complejidad Mostrar que la complejidad temporal está acotada por: O(min{b, c}). Qué número es menor luego de la primer iteración? (b, c) (c, b mod c) Comparar c vs b mod c: b < c c c b > c b b b mod c c c b mod c si b = c?
17 2.8. a. Complejidad Luego de la primer iteración: c := b mod c min{b, c}
18 2.8. a. Complejidad Luego de la primer iteración: c := b mod c min{b, c} En cada iteración c disminuye en al menos una unidad
19 2.8. a. Complejidad Luego de la primer iteración: c := b mod c min{b, c} En cada iteración c disminuye en al menos una unidad El algoritmo termina cuando c = 0
20 2.8. a. Complejidad Luego de la primer iteración: c := b mod c min{b, c} En cada iteración c disminuye en al menos una unidad El algoritmo termina cuando c = 0 Luego de k + 1 iteraciones, el algoritmo termina, donde k = min{b, c}
21 2.8. a. Complejidad Luego de la primer iteración: c := b mod c min{b, c} En cada iteración c disminuye en al menos una unidad El algoritmo termina cuando c = 0 Luego de k + 1 iteraciones, el algoritmo termina, donde k = min{b, c} Ejemplo de un peor caso? Familia de peores casos? Ideas?
22 2.8. b. Analizar el siguiente algoritmo para determinar el máximo común divisor entre dos números b y c, y mostrar que su complejidad también es O(min {b,c}). 1. Poner g = min { b,c } 2. mientras g > 1 3. si b/g y c/g son enteros, informar mcd = g y parar. 4. poner g = g informar mcd = 1 y parar
23 2.8.b - Euclides Es correcto?
24 2.8.b - Euclides Es correcto? Busca ordenadamente el primer g que cumpla la propiedad de ser mcd.
25 2.8.b - Euclides Es correcto? Busca ordenadamente el primer g que cumpla la propiedad de ser mcd. La iteracion recorre: g = min {b,c}.. 1
26 2.8.b - Euclides Es correcto? Busca ordenadamente el primer g que cumpla la propiedad de ser mcd. La iteracion recorre: g = min {b,c}.. 1 Dudas?
27 2.8. c. Las complejidades calculadas para los algoritmos de las partes a. y b. son iguales. Cuál de los dos algoritmos elegiría? Justificar y comentar.
28 2.8.c - Elección de algoritmo Cual prefieren? Por qué?
29 2.8.c - Elección de algoritmo Cual prefieren? Por qué? Factores a tomar en cuenta para decidir qué algoritmo utilizar:
30 2.8.c - Elección de algoritmo Cual prefieren? Por qué? Factores a tomar en cuenta para decidir qué algoritmo utilizar: 1. Teoría: Correctitud, Complejidad temporal, complejidad espacial, etc.
31 2.8.c - Elección de algoritmo Cual prefieren? Por qué? Factores a tomar en cuenta para decidir qué algoritmo utilizar: 1. Teoría: Correctitud, Complejidad temporal, complejidad espacial, etc. 2. Practica: Resultados experimentales, dificultad de la implementación, propenso a errores, etc.
32 2.8.c - Elección de algoritmo Cual prefieren? Por qué? Factores a tomar en cuenta para decidir qué algoritmo utilizar: 1. Teoría: Correctitud, Complejidad temporal, complejidad espacial, etc. 2. Practica: Resultados experimentales, dificultad de la implementación, propenso a errores, etc. Cuando usamos O() para la complejidad temporal damos una garantía de peor caso, pero es una cota superior. Esa cota no es necesariamente ajustada.
33 2.8.c - Elección de algoritmo Cual prefieren? Por qué? Factores a tomar en cuenta para decidir qué algoritmo utilizar: 1. Teoría: Correctitud, Complejidad temporal, complejidad espacial, etc. 2. Practica: Resultados experimentales, dificultad de la implementación, propenso a errores, etc. Cuando usamos O() para la complejidad temporal damos una garantía de peor caso, pero es una cota superior. Esa cota no es necesariamente ajustada. En la vida real, lo ideal es mezclar resultados teoricos y practicos para sacar conclusiones.
34 2.8.c - Elección de algoritmo Cual prefieren? Por qué? Factores a tomar en cuenta para decidir qué algoritmo utilizar: 1. Teoría: Correctitud, Complejidad temporal, complejidad espacial, etc. 2. Practica: Resultados experimentales, dificultad de la implementación, propenso a errores, etc. Cuando usamos O() para la complejidad temporal damos una garantía de peor caso, pero es una cota superior. Esa cota no es necesariamente ajustada. En la vida real, lo ideal es mezclar resultados teoricos y practicos para sacar conclusiones. En este caso, es importante notar la diferencia entre las cotas superiores encontradas para medir la complejidad temporal, una es ajustada y la otra no.
35 2.8. d. Probar que se puede mejorar la complejidad calculada en a. demostrando que el algoritmo de Euclides es en realidad O(log 2 (min{b, c})).
36 2.8.d - Mejorando la complejidad temporal Qué tan rápido decrecen (b, c)?
37 2.8.d - Mejorando la complejidad temporal Qué tan rápido decrecen (b, c)? En una iteración: (b, c) (c, b mod c)
38 2.8.d - Mejorando la complejidad temporal Qué tan rápido decrecen (b, c)? En una iteración: (b, c) (c, b mod c) Hacer ejemplos y pensar hasta que se nos ocurra algo...
39 2.8.d - Mejorando la complejidad temporal Qué tan rápido decrecen (b, c)? En una iteración: (b, c) (c, b mod c) Hacer ejemplos y pensar hasta que se nos ocurra algo...
40 2.8.d - Mejorando la complejidad temporal Lema Si b c b mod c < b 2.
41 2.8.d - Mejorando la complejidad temporal Lema Si b c b mod c < b 2, Caso 1: c b/2 c b/2 c b mod c < c b/2 b/2 b b/2 c c b mod c
42 2.8.d - Mejorando la complejidad temporal Lema Si b c b mod c < b 2 Caso 2: c > b/2 c > b/2 b mod c = b - c < b/2 c b/2 b c b/2 b mod c b
43 2.8.d - Mejorando la complejidad temporal Cada dos iteraciones, b y c disminuyen a la mitad (o más).
44 2.8.d - Mejorando la complejidad temporal Cada dos iteraciones, b y c disminuyen a la mitad (o más). Luego de la primer iteración: b 1 c 1 y b 1 min{b 0, c 0 }
45 2.8.d - Mejorando la complejidad temporal Cada dos iteraciones, b y c disminuyen a la mitad (o más). Luego de la primer iteración: b 1 c 1 y b 1 min{b 0, c 0 } Concluyo que una cota superior de la complejidad temporal es O(log 2 (min{b, c})
46 2.8.d - Mejorando la complejidad temporal Cada dos iteraciones, b y c disminuyen a la mitad (o más). Luego de la primer iteración: b 1 c 1 y b 1 min{b 0, c 0 } Concluyo que una cota superior de la complejidad temporal es O(log 2 (min{b, c}) Se puede mejorar?
47 Fin DUDAS
Algoritmo de Euclides
Algoritmo de Euclides Melanie Sclar Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires AED III Melanie Sclar (UBA) Algoritmo de Euclides AED III 1 / 21 Ejercicio 2.8 de la práctica Ejercicio
El Algoritmo de Euclides
El Algoritmo de Euclides Pablo L. De Nápoli Departamento de Matemática Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 25 de abril de 2014 Pablo L. De Nápoli (Departamento de Matemática
Programación dinámica
Algoritmos y Estructura de Datos III Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 03 de Abril de 2013 Repaso Aplica a problemas de optimización donde obtenemos una solución utilizando
Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas
Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,
Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar
Tema 01: Fundamentos del Análisis Asintótico de Algoritmos
Tema 01: Fundamentos del Análisis Asintótico de Algoritmos Noviembre, 2003 CS0218: Algoritmos y Programación II Introducción En Ciencias de la Computación se presenta con frecuencia la situación de analizar
Multiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
Un tercer ejemplo: verificación de primalidad
Un tercer ejemplo: verificación de primalidad Vamos a ver un algoritmo aleatorizado para verificar si un número es primo. I Este algoritmo es más eficiente que los algoritmos sin componentes aleatorias
RSA: Implementación. Ya resolvimos (3), ahora vamos a resolver (2). IIC3242 Complejidad Probabiĺıstica 28 / 77
RSA: Implementación Para poder implementar RSA necesitamos algoritmos eficientes para los siguientes problemas: (1) Generar primos P y Q (2) Generar números e y d tales que e d modφ(n) = 1 (3) Calcular
Aritmética en Haskell
Aritmética en Haskell Taller de Álgebra I Primer cuatrimestre de 2014 Algoritmo de división Para obtener el cociente y resto entre dos números enteros, tenemos las funciones div y mod, respectivamente.
Algoritmo de Euclides
Algoritmo de Euclides No es necesario realizar ensayo y error para determinar el inverso multiplicativo de un entero módulo n. Si el módulo que está siendo usado es pequeño hay algunas pocas posibilidades
Propiedades de números enteros (lista de problemas para examen)
Propiedades de números enteros (lista de problemas para examen) Denotamos por Z al conjunto de los números enteros y por N al conjunto de los números enteros positivos: N = 1, 2, 3,...}. Valor absoluto
Complejidad de algoritmos recursivos
Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.
Programación Dinámica 1
Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir
Introducción al Análisis del Coste de Algoritmos
1/11 Introducción al Análisis del Coste de Algoritmos Josefina Sierra Santibáñez 7 de noviembre de 2017 2/11 Eficiencia de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, predecir
EI MT1008 Programación II
GRADO EN INGENIERÍA INFORMÁTICA GRADO EN MATEMÁTICA COMPUTACIONAL EI1008 - MT1008 Programación II Curso 2010-2011 Departamento de Lenguajes y Sistemas Informáticos 1. Datos de la asignatura Carácter: Formación
Tema 9. Recursividad
Tema 9. Recursividad http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la información Universitat
Tema 3. Análisis de costes
Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información
Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda
Árboles Árboles Mario Medina C. [email protected] Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles
Programación II Recursividad Dr. Mario Rossainz López
5. RECURSIVIDAD 5.1. Introducción La recursividad es una técnica en la que una función o método se hace llamadas a sí misma en el proceso de la realización de sus tareas. La recursividad da al programador
6. Estructuras básicas de control 1. Pseudocódigo
6. Estructuras básicas de control 1 Acciones Pseudocódigo Slide 1 Estructuras de control Secuencia Selección simple (si... entonces... ) doble (si... entonces... si no... ) múltiple (según el caso... )
Análisis de algoritmos. Recursividad
Análisis de algoritmos Recursividad 1 Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Ésta muñeca, también contiene
Criptografía de clave pública Sistemas basados en el problema de la mochila
de la la La Criptografía de clave pública Sistemas basados de la DSIC - UPV (DSIC - UPV) de la 1 / 21 Contenidos del tema de la la La 1 Características de los sistemas de clave pública Principios para
Búsqueda Informada. Algoritmos primero el mejor Algoritmos de búsqueda local
Búsqueda Informada Algoritmos primero el mejor Algoritmos de búsqueda local Algoritmos primero el mejor Búsqueda primero el mejor Búsqueda Voraz A* Algoritmos primero el mejor Familia de algoritmos de
Clase 2: Algoritmo de Euclídes
Clase 2: Algoritmo de Euclídes Dr. Daniel A. Jaume, * 8 de agosto de 2011 1. Máximo común divisor Para entender que es el máximo común divisor de un par de enteros (no simultáneamente nulos). Lidearemos
Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Manos a la obra: Recursión, división y listas
Manos a la obra: Recursión, división y listas Taller de Álgebra I Cuatrimestre de verano de 2015 Calentando motores La clase pasada vimos ejemplos de definiciones recursivas. Hoy vamos a continuar con
Estructura de Datos. Complejidad de Algoritmos. Algoritmo. Algoritmo. Mauricio Solar Lorna Figueroa
Estructura de Datos Complejidad de Algoritmos Mauricio Solar Lorna Figueroa 2010 1 Algoritmo Definición: Un algoritmo es un conjunto finito de instrucciones que sirven para resolver un problema si fueron
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Notación Asintótica DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime)
Introducción a la Matemática Discreta
Introducción a la Matemática Discreta Aritmética Entera Luisa María Camacho Camacho Introd. a la Matemática Discreta 1 / 36 Introducción a la Matemática Discreta Temario Tema 1. Teoría de Conjuntos. Tema
Recursividad Definición
Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como
DIVISIBILIDAD NÚMEROS NATURALES
DIVISIBILIDAD NÚMEROS NATURALES MÚLTIPLOS Un número a es múltiplo de otro b cuando es el resultado de multiplicarlo por otro número c. a = b c Ejemplo: 12 es múltiplo de 2, ya que resulta de multiplicar
<tipo> Tipo de dato de los elementos del vector
Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.
Algorítmica y Lenguajes de Programación. Búsqueda
Algorítmica y Lenguajes de Programación Búsqueda Búsqueda. Introducción Hace dos lecciones se dijo que había tres tratamientos básicos sobre vectores: Recorrido. Ordenación. Búsqueda. Durante las últimas
Análisis de Algoritmos
Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos
1.2.4 Listas enlazadas
1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina
Gu ıa Departamento. Matem aticas U.V.
Universidad de Valparaíso Instituto de Matemáticas 1. Determinar el cociente y el residuo de 541 y de -541al dividir por 17 391 y -391 al dividir por 17 Guía de Teoría de Números 2. Sea a Z,n N comparar
Ejercicios de sucesiones.
Ejercicios de sucesiones. 1.- Cuando escribimos a n queremos decir: término n-ésimo o toda la sucesión? Qué diferencia hay entre a n y (a n )? a).-cuando escribimos a n nos referimos a término enésimo.
Complejidad de Algoritmos
Complejidad de Algoritmos Tema 5 Introducción Un algoritmo es una secuencia de instrucciones que resuelve un problema Puede tener diferentes implementaciones Para comparar las diferentes formas (algoritmos)
Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos
Estructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Práctico 2: Evaluación de Algoritmos (Finalización: 03/09) Ingeniería en Computación - Ingeniería en Informática Año 2015 Ejercicio 1: Dados los siguientes vectores, correspondientes
#include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica; }
/*1. Crear una función que calcule el cubo de un número real (float). El resultado deberá ser otro número real. Probar esta función para calcular el cubo de 3.2 y el de 5. */ float cubica(float numero)
1. Recuerdo del algoritmo de KRUSKAL
MA3705. Algoritmos Combinatoriales. 014. Profesor: José Soto Escriba(s): Manuel Cáceres, Camilo Gómez y Sebastián Muñoz. Fecha: 11 de Agosto 014. Cátedra 5 1. Recuerdo del algoritmo de KRUSKAL La clase
Introducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani
Introducción Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Algoritmos y Algoritmia Problemas e instancias Primer Cuatrimestre 2014 Algoritmos
Algoritmos y Estructuras de Datos II
27 de mayo de 2013 Clase de hoy 1 Repaso Divide y vencerás Algoritmos voraces 2 3 Divide y vencerás Algoritmos voraces Repaso cómo vs. qué 3 partes 1 análisis de algoritmos 2 tipos de datos 3 técnicas
COMPLEJIDAD Y EFICIENCIA DE ALGORITMOS
UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO Facultad de Ciencias Exactas y Tecnologías Licenciatura en Sistemas de Información 2009 COMPLEJIDAD Y EFICIENCIA DE ALGORITMOS 1 TEORÍA DE LA COMPLEJIDAD Dado
TEORIA DE NUMEROS. Temas: MAXIMO COMUN DIVISOR ALGORITMO MCD(A,B) IDENTIDAD DE BEZOUT ALGORITMO ST(A,B) EL TEOREMA FUNDAMENTAL DE LA ARITMETICA.
. 1 TEORIA DE NUMEROS Temas: CLASE 2 HS: MAXIMO COMUN DIVISOR ALGORITMO MCD(A,B) IDENTIDAD DE BEZOUT ALGORITMO ST(A,B) CLASE 1:15 H: EL TEOREMA FUNDAMENTAL DE LA ARITMETICA. GENERACION DE LA DESCOMPOSICIÓN
Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos
Programación imperativa Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 6 Ciclos y arreglos Entidad fundamental:
Relaciones de orden. Definición 1. Llamamos conjunto ordenado a un par (E, ) donde E es un conjunto y es un orden definido en E
Relaciones de orden Diremos que una relación R es de orden si verifica las propiedades reflexiva, antisimétrica y transitiva. Generalmente usaremos la notación en lugar de R para expresar relaciones de
Tema 06: Recursividad
Tema 06: Recursividad M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Recursión Recursividad Programación
Capítulo IV. Divisibilidad y Primalidad. Algoritmo de la División
Capítulo IV Divisibilidad y Primalidad IV.1. Algoritmo de la División (Aquí se enuncia con la posibilidad de divisor negativo y la prueba incluye el caso de dividendo negativo.) Teorema 1 Dados m, d Z,
Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad
Programación Dinámica
, Algoritmos y Programación 6 de Abril de 2010 Alejandro Deymonnaz Definiciones Divide and Conquer Deiniciones previas Problema recursivo Un problema recursivo es un problema que se puede resolver en base
TEORIA DE NUMEROS DIVISIBILIDAD Y NUMEROS PRIMOS. PRUEBAS DE PRIMALIDAD. LA CRIBA DE ERATOSTENES. ALGORITMOS. TEOREMA: EXISTENCIA DE INFINITOS PRIMOS.
. 1 TEORIA DE NUMEROS Temas: DIVISIBILIDAD Y NUMEROS PRIMOS. PRUEBAS DE PRIMALIDAD. LA CRIBA DE ERATOSTENES. ALGORITMOS. TEOREMA: EXISTENCIA DE INFINITOS PRIMOS. (Apuntes de apoyo a clases teóricas) (Tiempo
Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i)
Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (i) Eficiencia y notación asintótica. Introducción Para resolver un problema pueden existir varios algoritmos. Por tanto, es lógico
Algoritmos glotones. mat-151
Algoritmos glotones (greedy) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 04.06.2009 Algoritmos glotones Algoritmos utilizados en problemas de optimización. Estos algoritmos siguen típicamente
Geometría. Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires. Training Camp 2012
Geometría Leopoldo Taravilse Francisco Roslán Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Training Camp 2012 Leopoldo Taravilse, Francisco Roslán (UBA) Geometría TC 2012 1 / 30
Algoritmo de Euclides y ecuaciones de congruencia
Algoritmo de Euclides y ecuaciones de congruencia Taller de Álgebra I Primer cuatrimestre de 2017 Algoritmo de Euclides El algoritmo de Euclides calcula el máximo común divisor entre dos números a, b Z.
La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados.
RECURSIVIDAD La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados. Los algoritmos recursivos ofrecen soluciones estructuradas, modulares
Álgebra y Matemática Discreta
Álgebra y Matemática Discreta Sesión de Teoría 1 (c) 2013 Leandro Marín, Francisco J. Vera, Gema M. Díaz 16 Sep 2013-22 Sep 2013 Los Números Enteros El Conjunto Z Vamos a empezar por la aritmética más
RECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres
ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS RECURSIVIDAD Definición. Estado base. Estado general. Ejemplos. Ejercicios. DEFINICIÓN Es una técnica de programación muy potente que permite
Tema 5- Diseño Recursivo y. Objetivos Principales. Bibliografía Básica
Tema 5- Diseño Recursivo y Eficiente Tema 5- Diseño Recursivo y Eficiente Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Introducción
Tema 3. Estructuras de Datos
Tema 3! Estructuras de Datos Estructuras Simples, Doble, Anidada y Múltiple En este tema veremos las sentencias selectivas: IF (Si) IF - Then (Si - Entonces) IF - Then - Else ( Si - Entonces - Sino) Switch
1) Indique los primeros elementos de los siguientes conjuntos numéricos: Números Naturales: IN = {
Clase-04 Temas: Operatoria entre números naturales (IN) y enteros (Z), múltiplos, divisores, mínimo común múltiplo (M.C.M.) y máximo común divisor (M.C.D.). 1) Indique los primeros elementos de los siguientes
Práctica 2. Algoritmos de enfriamiento simulado (simulated annealing)
PLANIFICACIÓN Y GESTIÓN DE REDES Grado en Ingeniería Telemática Curso 2012-2013 Práctica 2. Algoritmos de enfriamiento simulado (simulated annealing) Autor: Pablo Pavón Mariño 1. Objetivos Los objetivos
Descomposicion en Polígonos Monótonos. comp-420
Descomposicion en Polígonos Monótonos comp-420 Triangulación de Polígonos Teorema 1: Todo polígono simple admite una triangulación, y cualquier triangulación de un polígono simple con n vértices consta
Analizadores sintácticos LR(0) y SLR
Teoría de Lenguajes Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Clase de Hoy Anteriores: Parsing descendente (LL(1), ELL) Recursivos e iterativos Generan árbol de derivación desde
Euclides Extendido y Teorema Chino del Resto
Euclides Extendido y Teorema Chino del Resto Taller de Álgebra I Segundo cuatrimestre de 2013 Lema de Bézout Recordemos este lema: Lema (Étienne Bézout) Sean a, b Z, alguno distinto de 0. Entonces existen
Estructura de datos y de la información Boletín de problemas - Tema 9
Estructura de datos y de la información Boletín de problemas - Tema 9 1. Dada la siguiente función recursiva: void F(char c) { if (( A
Estructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
Generación de variables aleatorias discretas Método de la Transformada Inversa
Generación de variables aleatorias discretas Método de la Transformada Inversa Georgina Flesia FaMAF 9 de abril, 2013 Generación de v.a. discretas Existen diversos métodos para generar v.a. discretas:
4.- Raíces cuadradas.
4.- Raíces cuadradas. DEFINICIÓN La raíz cuadrada exacta de un número entero es otro número entero cuyo cuadrado coincide con el primer número, es decir: 2 a = b b = a No todos los enteros tienen raíz
Análisis y Diseño de Algoritmos. Complejidad Computacional
Análisis y Diseño de Algoritmos Complejidad Computacional Multiplicación Método Tradicional Método Russé Método Particiones Complejidad Computacional Tan pronto como una máquina análitica exista, será
Introducción al análisis de algoritmos
Estructura de Datos y Algoritmos Introducción al análisis de algoritmos 1. Eficiencia en tiempo de Ejecución Cuando resolvemos un problema nos vemos frecuentemente enfrentando una elección de programas,
Recuperación Primer Trimestre Matemáticas 1ºESO
Recuperación Primer Trimestre Matemáticas 1ºESO TEMA 1: DIVISIBILIDAD 1 Ana tiene 0 libros que quiere colocar en montones de manera que todos ellos tengan el mismo número de libros. De cuántas formas puede
La eficiencia de los programas
La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos
Muchas de las ecuaciones de recurrencia que vamos a usar en este curso tienen la siguiente forma: ( c n =0 T (n) = a T (b n b.
El Teorema Maestro Muchas de las ecuaciones de recurrencia que vamos a usar en este curso tienen la siguiente forma: ( c n =0 T (n) = a T (b n b c)+f (n) n 1 donde a, b y c son constantes, y f (n) es una
Taller de Programación Dinámica. Definiciones. Caso base. Laboratorio de Algoritmos y Estructuras de Datos III. 10 de Septiembre de 2010
Menú del día Taller de 1 Definiciones Laboratorio de Algoritmos y Estructuras de Datos III Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 10 de Septiembre
Cubiertas convexas II
Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 22 de enero del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Cubiertas convexas II 22 de enero del 2013 1 / 41 1 Cubiertas convexas II Algoritmo QuickHull
Notación Asintótica 2
Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad
Tema 10: Árbol binario de búsqueda
Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de
CI2612: Algoritmos y Estructuras de Datos II. Nociones básicas. Objetivos. Algoritmos. Blai Bonet
CI2612: Algoritmos y Estructuras de Datos II Blai Bonet Nociones básicas Universidad Simón Boĺıvar, Caracas, Venezuela Objetivos Algoritmos Concepto de algoritmo y modelo computacional Complejidad en tiempo
Programación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2
Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 5. Algoritmos voraces, heurísticos y aproximados
UNIDAD 7 Recursividad Concepto. Algoritmos recursivos. Seguimiento de la recursión. Algunos métodos recursivos de búsqueda y ordenación: M-Sort y
Recursividad Concepto. Algoritmos recursivos. Seguimiento de la recursión. Algunos métodos recursivos de búsqueda y ordenación: M-Sort y Q-Sort. Comparación de eficiencia en métodos Iterativos vs recursivos
