Analisis de algoritmos
|
|
|
- Felisa Carrasco Tebar
- hace 10 años
- Vistas:
Transcripción
1 Analisis de algoritmos
2 Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema.
3 Recursos Qué recursos? Tiempo Memoria Medios de almacenamiento secundario Red
4 Análisis de eficiencia de algoritmos Se puede plantear una función Uso_de_Recurso_R(Tamaño_del_Problema) que relacione cuanto de un recurso determinado se utiliza con el tamaño del problema al cual se aplica. En este caso tomaremos como recurso de estudio el tiempo, con lo cual la función sería Tiempo_de_ejecución(Tamaño_del_problema)
5 Magnitudes: Tamaño del problema Llamamos n a la medida del tamaño del problema o de los datos a procesar. Qué es lo que mide n depende de cada problema en particular. Ordenamiento: n es la cantidad de elementos a ordenar. Factorial: n coincide con el operando. Determinante de una matriz: n es el orden de la matriz.
6 Magnitudes: Tiempo de ejecución T(n) o el tiempo de ejecución de un programa en función de su n se podría: Medir físicamente, ejecutando el programa y tomando el tiempo Contando las instrucciones a ejecutar y multiplicando por el tiempo requerido por cada instrucción pero
7 Magnitudes: Tiempo de ejecución los métodos anteriores dependen del modelo de recursos disponibles y esto imposibilita la comparación con otros algoritmos. Entonces
8 Magnitudes: Tiempo de ejecución Se toman como unidad las operaciones elementales: asignación y comparación. Luego se puede multiplicar el resultado por el tiempo que llevan estas unidades.
9 Ejemplo: mínimo de tres valores. Método 1: m:= a; If b<m then m:= b; If c<m then m:= c; Método 2: If a <= b then if a <= c then m:= a else m:= c Else if b<= c then m:= b else m:= c;
10 Ejemplo: mínimo de tres valores. Método 3: If (a<=b)and(a<=c) then m:= a; If (b<=a)and(b<=c) then m:= b; If (c<=a)and(c<=b) then m:= c; Método 4: If (a <= b)and(a<=c) then m:=a else if b <= c then m:= b else m:= c;
11 Ejemplo: mínimo de tres valores. Método 1: m:= a; If b<m then m:= b; If c<m then m:= c; Comparaciones: 2 1 <= Asignaciones <= 3
12 Ejemplo: mínimo de tres valores. Método 2: If a <= b then if a <= c then m:= a else m:= c Else if b<= c then m:= b else m:= c; Comparaciones: 2 Asignaciones: 1
13 Ejemplo: mínimo de tres valores. Método 3: If (a<=b)and(a<=c) then m:= a; If (b<=a)and(b<=c) then m:= b; If (c<=a)and(c<=b) then m:= c; Comparaciones: 6 Asignaciones: 1
14 Ejemplo: mínimo de tres valores. Método 4: If (a <= b)and(a<=c) then m:=a else if b <= c then m:= b else m:= c; 2 <= Comparaciones <=3 Asignaciones: 1
15 Ejemplo: mínimo de tres valores. La diferencia parece poco relevante?
16 Ejemplo: mínimo de tres valores. Considere la repetición 500 veces de estas comparaciones: resultan 1000, 1500 o 3000 comparaciones. Si por ejemplo tuviera que compararse los 500 elementos de tres vectores, determinando para cada i cuál de los tres es el menor.
17 Análisis de algoritmos Se realiza tomando los siguientes casos: El mejor El peor El caso promedio El primero no presenta mayor interés. En general son más útiles los otros dos.
18 El caso promedio Volvamos sobre el método 4. If (a <= b)and(a<=c) then m:=a else if b <= c then m:= b else m:= c; En el mejor de los casos: 2 comparaciones. En el peor de los casos: 3 comparaciones.
19 El caso promedio Examinemos todos los casos posibles: a <= b <= c 2 comparaciones a <= c <= b 2 comparaciones b <= a <= c 3 comparaciones b <= c <= a 3 comparaciones c <= a <= b 3 comparaciones c <= b <= a 3 comparaciones Promedio: ( )/6 = 8/3 (2,66)
20 Ejemplo: evitar repetición innecesaria de cálculos Método 1: T:= x * x * x; Y:= 0; For n:= 1 to 2000 do y := y + 1 / (t-n) Método 2: Y:= 0; For n:= 1 to 2000 do y := y + 1 / (x * x * x - n) Cuál es más eficiente y por qué?
21 Análisis de algoritmos Hay dos maneras de estimar el tiempo de ejecución: Análisis empírico: se mide el tiempo de respuesta para distintos juegos de datos. Análisis teórico: se calculan el número de comparaciones y asignaciones que efectúa el algoritmo.
22 Análisis de algoritmos Si bien las técnicas empíricas son más sencillas de aplicar presentan algunos inconvenientes: Están afectadas por la potencia del equipo en el que se mide el tiempo. Presentan variaciones según las características de los datos de entrada Cuando es posible, se prefiere el análisis teórico del algoritmo.
23 T(n) ) versus TpromT (n) prom(n) T(n) ) es el tiempo de ejecución en el peor caso. Tprom(n) ) es el valor medio del tiempo de ejecución de todas las entradas de tamaño n. Aunque parezca más razonable TpromT prom(n), puede ser engañoso suponer que todas las entradas son igualmente probables. Casi siempre es más difícil calcular TpromT prom(n), ya que el análisis se hace intratable en matemáticas y la noción de entrada promedio puede carecer de un significado claro.
24 Asíntotas Los problemas pequeños en general se pueden resolver de cualquier forma. En cambio son los problemas grandes los que plantean desafíos y requieren de la administración cuidadosa de los recursos. Estudiaremos entonces el comportamiento asintótico de los algoritmos, es decir qué sucede con los mismos cuando n tiende a infinito.
25 Notación asintótica O Para hacer referencia a la velocidad de crecimiento de una función se puede utilizar la notación asintótica u O ( o mayúscula) y que señala que función se comporta como techo de crecimiento o cota superior de la primera.
26 Notación asintótica O Por ejemplo, si se describe que el tiempo de ejecución T(n) de un programa es O n 2 (se lee o mayúscula de n al cuadrado ) esto quiere decir que a partir de un cierto tamaño de problema, T(n) siempre será menor o igual que n 2 (o que n 2 multiplicada por una constante). Más formalmente: Existen constantes positivas c y n0 tales que para n n 0 se tiene que T n c n 2
27 Órdenes de complejidad O(f(n)) define un orden de complejidad,, es decir una familia de funciones que crecen de una determinada manera. Así tenemos los siguientes órdenes de complejidad.
28 Órdenes de complejidad O(1) Orden constante O(log n) Orden logarítmico O(n) Orden lineal O(n log n) O( n 2 ) Orden cuadrático O( n a ) Orden polinomial (a>2)( O( a n ) Orden exponencial (a>2) O(n!) Orden factorial
29
30 Órdenes de complejidad Esta tabla además coincide con un orden jerárquico ya que aquellas funciones O(1), es decir que tienen como techo una función constante también serán O(log n), O(n), O(n log n),, etc, ya que también tendrán como cota superior una función logarítmica, lineal, n log n, etc, aunque estas sean menos descriptivas de su comportamiento.
31 Reglas prácticas para determinar la complejidad de un algoritmo. Si bien no existe una receta para encontrar la O más descriptiva de un algoritmo, muchas veces se pueden aplicar las siguientes reglas.
32 Reglas prácticas para determinar la complejidad de un algoritmo. Sentencias sencillas: : instrucciones de asignación o de E/S siempre que no involucren estructuras complejas. Tienen complejidad constante (O(1)( O(1)) Secuencia: : una serie de instrucciones de un programa tiene el orden de la suma de las complejidades de estas. La suma de dos o más complejidades da como resultado la mayor de ellas.
33 Reglas prácticas para determinar la complejidad de un algoritmo. Estructuras alternativas: : se debe sumar la complejidad de la condición con la de las ramas. La condición suele ser de orden O(1) De las ramas se toma la peor complejidad.
34 Reglas prácticas para determinar la complejidad de un algoritmo. Estructuras repetitivas: : se deben distinguir dos casos diferentes. Cuando n no tiene que ver con la cantidad de veces que se ejecuta el bucle, la repetición introduce una constante multiplicativa que termina absorbiéndose. Cuando n determina de alguna manera la cantidad de iteraciones sí modificará la complejidad. Veamos algunos ejemplos.
35 Ejemplo de cálculo de complejidad de estructuras repetitivas for ( i= 0 to K ) { algo_de_o(1) } => K*O(1) = O(1) for ( i= 0 to N) { algo_de_o(1) } => N * O(1) = O(n) for ( i= 0 to N ) do for ( j= 0 to N) do algo_de_o(1) tendremos N * N * O(1) = O(n^2)
36 Ejemplo de cálculo de complejidad de estructuras repetitivas for (in i= 0; i < N; i++) { for (int j= 0; j < i; j++) { algo_de_o(1) } } el bucle exterior se realiza N veces, mientras que el interior se realiza 1, 2, 3,... N veces respectivamente. En total, N = N*(1+N)/2 -> O(n^2)
37 Ejemplo de cálculo de complejidad de estructuras repetitivas A veces aparecen bucles multiplicativos, donde la evolución de la variable de control no es lineal (como en los casos anteriores) c= 1; while (c < N) { algo_de_o(1) c= 2*c; } El valor inicial de "c" es 1, siendo "2^k" al cabo de "k" iteraciones. El número de iteraciones es tal que 2^k >= N => k= eis (log2(n)) (N)) [el entero inmediato superior] y, por tanto, la complejidad del bucle es O(log n).
38 Ejemplo de cálculo de complejidad de estructuras repetitivas c= N; while (c > 1) { algo_de_o(1) c= c / 2; } Un razonamiento análogo nos lleva a log2(n) iteraciones y, por tanto, a un orden O(log n) de complejidad.
39 Ejemplo de cálculo de complejidad de estructuras repetitivas for (int i= 0; i < N; i++) { c= i; while (c > 1) { algo_de_o(1) c= c/2; } } tenemos un bucle interno de orden O(log n) que se ejecuta N veces, luego el conjunto es de orden O(n log n)
40 Casos de aplicación Algoritmos de búsqueda Algoritmos de ordenamiento
41 Algoritmos de búsqueda: búsqueda lineal (I) Function Buscar(a: tvector; n:indice; x:tipoelemento):indice; Var j,k:indice; Begin j:=0; for k:= 1 to n do if x= a[k] then j:=k; buscar:= j; End;
42 Algoritmos de búsqueda: búsqueda lineal (I) El vector pasa por valor. Costo adicional en cuanto a memoria y tiempo. El vector es recorrido hasta el final aunque se encuentre el elemento antes.
43 Algoritmos de búsqueda: búsqueda lineal (II) Function Buscar(a: tvector; n:indice; x:tipoelemento):indice; Var j,k:indice; Begin j:=0; k:=0; while (k<n) and (x<>a[k]) do k:= k + 1; if x=a[k] then j:=k; buscar:= j; End;
44 Algoritmos de búsqueda: búsqueda lineal (II) Análisis teórico: caso promedio Posición del elem. buscado en el vector Cantidad de comparaciones n n
45 Algoritmos de búsqueda: búsqueda lineal (II) Análisis teórico: caso promedio. Cantidad de iteraciones:
46 Algoritmos de búsqueda: búsqueda lineal (II) Análisis teórico: el peor caso. Si el elemento está en la última posición del vector, se deberán realizar n comparaciones. T(n) = c. n T(n) es O(n) -> Complejidad lineal
47 Algoritmos de búsqueda: búsqueda binaria Function Buscar(a: tvector; n:indice; x:tipoelemento):indice; Var j, pri, ult, medio:indice; Begin j:=0; pri:=1; ult:=n; medio:=(pri+ult) div 2; while (pri<=ult) and (x<>a[medio]) do begin if x < a[medio] then ult:= medio -1 else pri:= medio + 1; medio:= (pri + ulti) div 2; end; if x=a[medio] then j:=medio; buscar:= j; End;
48 Algoritmos de búsqueda: búsqueda binaria Análisis teórico: el peor caso. El algoritmo sucesivamente dividirá el epacio de búsqueda a la mitad hasta que el mismo tenga longitud igual a uno. Cuántas iteraciones lleva esto?
49 Algoritmos de búsqueda: búsqueda binaria Iteración Nº Longitud del vector n
50 Algoritmos de búsqueda: búsqueda binaria Así vemos que el algoritmo de búsqueda binaria es O(log n), es decir de complejidad logarítmica.
51 Algoritmos de búsqueda: búsqueda binaria Análisis teórico: el caso promedio. En promedio la cantidad de comparaciones será:
52 Algoritmos de búsqueda: búsqueda binaria El caso promedio: demostración. La suma de las comparaciones necesarias para hallar cada uno de los elementos de un vector de n elementos. Restando s de 2s tenemos: Dado que Se llega a que o El promedio es Crease o no
53 Algoritmos de búsqueda: búsqueda binaria Mirando cuidadosamente la expresión vemos que es apenas ligeramente menor que la cantidad de comparaciones en el peor caso.
54 Algoritmos de Ordenamiento: Selección Procedure Ordenar(var v: tvector; n:indice); Var i, j, p:indice; item: tipoelem; Begin for i:= 1 to n-1 do begin p:= i; for j:= i+1 to n do if v[j]<v[p] then p:=j; item:= v[p]; v[p]:= v[i]; v[i]:= item; end; End;
55 Algoritmos de Ordenamiento: Selección Caso promedio: No es sencillo calcularlo por la dificultad de establecer todos los órdenes iniciales posibles. Aplicando la fórmula de permutaciones sin repetición, para n elementos tenemos n! órdenes distintos. Por ejemplo, para nada más que 10 elementos, tendríamos que estimar el tiempo de los casos distintos.
56 Algoritmos de Ordenamiento: Selección El peor caso. Comparaciones: Iteración Comparaciones 1 n-1 2 n-2 3 n-3 n-1 1
57 Algoritmos de Ordenamiento: Selección El peor caso. Comparaciones:
58 Algoritmos de Ordenamiento: Selección El peor caso. Intercambios: Se producen n-1 intercambios. Como cada intercambio conlleva 3 asignaciones, tenemos asignaciones = 3* (n-1)
59 Algoritmos de Ordenamiento: Selección Observando comparaciones y asignaciones podemos concluir que el algoritmo es de complejidad cuadrática -> O(n^2).
60 Algoritmos de Ordenamiento: Burbuja Procedure Ordenar(var v: tvector; n:indice); Var i, j, p:indice; item: tipoelem; Begin for i:= n downto 2 do begin for j:=1 to i-1 do if v[j]<v[j+1] then begin item:= v[j]; v[j]:= v[j+1]; v[i+1]:= item; end; end; End;
61 Algoritmos de Ordenamiento: Burbuja El peor caso. Comparaciones: Al igual que las del método de selección, la cantidad de comparaciones es igual a:
62 Algoritmos de Ordenamiento: Burbuja El peor caso. Intercambios: Por cada comparación se produce un intercambio; teniendo en cuenta que cada intercambio se compone de tres asignaciones:
63 Algoritmos de Ordenamiento: Burbuja Tanto por la cantidad de comparaciones como por la de asignaciones, la complejidad del método es cuadrática -> O(n^2).
64 Algoritmos de Ordenamiento: Mergesort Utiliza la estrategia divide y vencerás. Se divide el vector en dos mitades. Luego se ordena cada una de ellas. Finalmente se mezclan los dos subvectores (merging).
65 Algoritmos de Ordenamiento: Mergesort Procedure Ordenar(var v: tvector; ini, fin:indice); Var medio:indice; Begin if ini < fin then begin medio:= (ini + fin) div 2; Ordenar(v, ini, medio); Ordenar(v, medio+1, fin); merge(v, ini, medio, fin); end; End;
66 Algoritmos de Ordenamiento: Mergesort Procedure Merge(var a: tvector; inicio, medio, fin:indice); Var i, k:indice; v: tvector; Begin j:= inicio; k:= medio + 1; i:=0; while (j<= medio) and (k<=fin)do begin i:=i+1; if a[j] < a[k] then begin v[i]:= a[j]; j:= j + 1; end else begin v[i]:= a[k]; k:= k +1; end; end;
67 Algoritmos de Ordenamiento: Mergesort {Volcar los elementos que queden en el primer o segundo subvector} while (j<= medio) do begin i:=i+1; v[i]:= a[j]; j:= j + 1; end; while (k<= fin) do begin i:=i+1; v[i]:= a[k]; k:= k + 1; end; {Asignar v al vector de salida a} a := v; End;
68 Algoritmos de Ordenamiento: Mergesort La mezcla de los dos subvectores es de complejidad lineal -> O(n). Si el ordenamiento tiene complejidad cuadrática el costo de ordenar la mitad del vector bajará a la cuarta parte.
69 Algoritmos de Ordenamiento: Mergesort Al igual que en el caso de la búsqueda binaria, el vector se irá dividiendo a la mitad hasta quedar de longitud uno (1). Esto ocurre luego de log2(n) divisiones.
70 Algoritmos de Ordenamiento: Mergesort Se repetirá log2(n) veces código que es O(n), con lo cual la complejidad de merge-sort es: O(n log n)
71 Algoritmos de Ordenamiento: Mergesort Ventaja adicional: el ordenamiento de cada subvector lo pueden realizar simultáneamente dos procesadores distintos. Costo adicional: la mezcla de los dos subvectores requiere del uso de un vector auxiliar, con el consiguiente uso de memoria. El método quick-sort emplea una estrategia similar pero al no requerir la mezcla de vectores optimiza el uso de memoria.
ESTRUCTURA DE DATOS: ARREGLOS
ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción
ARREGLOS DEFINICION GENERAL DE ARREGLO
ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un
ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS
Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS Iván Medrano Valencia ANALISIS DE ALGORITMOS Un algoritmo es un
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo
Tema 8: Algoritmos de ordenación y búsqueda
Tema 8: Algoritmos de ordenación y búsqueda Objetivos: en este tema se presentan algoritmos que permiten buscar un elemento dentro de una colección y ordenar una colección en base a algún criterio (el
Programación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Ejemplos de conversión de reales a enteros
Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print
Análisis asintótico: algoritmos recursivos e iterativos
Análisis asintótico: algoritmos recursivos e iterativos Frank Sebastián Franco Hernández 22 de agosto de 2014 1. Análisis de tres algoritmos de ordenamiento 1.1. Algoritmo BubbleSort Este algoritmo funciona
Juan Antonio González Mota Profesor de Matemáticas del Colegio Juan XIII Zaidín de Granada
FUNCIONES CONOCIDAS. FUNCIONES LINEALES. Se llaman funciones lineales a aquellas que se representan mediante rectas. Su epresión en forma eplícita es y f ( ) a b. En sentido más estricto, se llaman funciones
Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido
Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6
QUÉ ES UN NÚMERO DECIMAL?
QUÉ ES UN NÚMERO DECIMAL? Un número decimal representa un número que no es entero, es decir, los números decimales se utilizan para representar a los números que se encuentran entre un número entero y
1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1
5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0
Ingeniería del Software. Índice
Índice Introducción a los TADs Medida de la eficiencia de las implementaciones Estructuras lineales: pilas, colas, listas Tablas asociativas: hash Árboles Grafos 1 Introducción a los TADs Los Tipos Abstractos
Introducción a la calidad de código
Universidad de Buenos Aires Facultad De Ingeniería Introducción a la calidad de código [75.40] Algoritmos y Programación I 2do Cuatrimestre 2010 Cátedra: Ing. Pablo Guarna Autor: Bernardo Ortega Moncada
Programación Genética
Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino
Ampliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
CLASE # 5 TÉCNICAS DE CAJA BLANCA
CLASE # 5 TÉCNICAS DE CAJA BLANCA 750105M - TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE SEMESTRE 2013A - DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente
Estructura de Datos y de la Información. Pilas y expresiones aritméticas
Estructura de Datos y de la Información Pilas y expresiones aritméticas LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
LÍMITES Y CONTINUIDAD DE FUNCIONES
Capítulo 9 LÍMITES Y CONTINUIDAD DE FUNCIONES 9.. Introducción El concepto de ite en Matemáticas tiene el sentido de lugar hacia el que se dirige una función en un determinado punto o en el infinito. Veamos
Divisibilidad y números primos
Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos
1.4.- D E S I G U A L D A D E S
1.4.- D E S I G U A L D A D E S OBJETIVO: Que el alumno conozca y maneje las reglas empleadas en la resolución de desigualdades y las use para determinar el conjunto solución de una desigualdad dada y
El sistema decimal, es aquél en el que se combinan 10 cifras (o dígitos) del 0 al 9 para indicar una cantidad específica.
5.2 SISTEMAS DE NUMERACIÓN. DECIMAL El sistema decimal, es aquél en el que se combinan 10 cifras (o dígitos) del 0 al 9 para indicar una cantidad específica. La base de un sistema indica el número de caracteres
Función exponencial y Logaritmos
Eje temático: Álgebra y funciones Contenidos: Función exponencial y Logaritmos Nivel: 4 Medio Función exponencial y Logaritmos 1. Funciones exponenciales Existen numerosos fenómenos que se rigen por leyes
FUNCIONES CUADRÁTICAS Y RACIONALES
www.matesronda.net José A. Jiménez Nieto FUNCIONES CUADRÁTICAS Y RACIONALES 1. FUNCIONES CUADRÁTICAS. Representemos, en función de la longitud de la base (), el área (y) de todos los rectángulos de perímetro
Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014
Tecnologías en la Educación Matemática [email protected] Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos con acciones. Los datos de entrada
EJERCICIOS SOBRE : DIVISIBILIDAD
1.- Múltiplo de un número. Un número es múltiplo de otro cuando lo contiene un número exacto de veces. De otra forma sería: un número es múltiplo de otro cuando la división del primero entre el segundo
Funciones, x, y, gráficos
Funciones, x, y, gráficos Vamos a ver los siguientes temas: funciones, definición, dominio, codominio, imágenes, gráficos, y algo más. Recordemos el concepto de función: Una función es una relación entre
PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN
PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN Ejercicio 1. Diseñar una planilla EXCEL que tome como dato de entrada un número entero y devuelva la representación en base 2. Testearla con los números 23, 245, 673,
Árboles AVL. Laboratorio de Programación II
Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus
Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)
Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA... 1 1. Representación interna de datos.... 1 1.2. Sistemas de numeración.... 2 1.3. Aritmética binaria...
EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO
EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO 1º) Considérese un número estrictamente positivo del sistema de números máquina F(s+1, m, M, 10). Supongamos que tal número es: z = 0.d 1 d...d s 10 e Responde
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación
Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado
2 Teoría de colas o líneas de espera
2 Teoría de colas o líneas de espera El tráfico en redes se puede modelar con la ayuda de la teoría de colas, es por ello ue es importante estudiarlas y comprenderlas. Existen varias definiciones sobre
Elementos de Combinatoria
Elementos de Combinatoria 1 Introducción Previamente al estudio de la probabilidad en sí, conviene dedicar algún tiempo al repaso de las técnicas combinatorias. Recordemos que la Combinatoria es la parte
Matemáticas para la Computación
Matemáticas para la Computación José Alfredo Jiménez Murillo 2da Edición Inicio Índice Capítulo 1. Sistemas numéricos. Capítulo 2. Métodos de conteo. Capítulo 3. Conjuntos. Capítulo 4. Lógica Matemática.
Tutorial Básico de vbscript
Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así
Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones
Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones Leandro Marín Dpto. de Matemática Aplicada Universidad de Murcia 2012 1 Números 2 Polinomios 3 Funciones y su Representación
Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo
Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo Complejidad Cómo podemos medir y comparar algoritmos, si estos se ejecutan a distintas velocidades
PHP y MySQL. Indice: Switch Bucles For While do...while
PHP y MySQL Indice: Switch Bucles For While do...while Switch switch...case es otra opción para trabajar con condiciones. Y suplanta al if, cuando lo único que se quiere hacer es comparar si son iguales
Matrices equivalentes. El método de Gauss
Matrices equivalentes. El método de Gauss Dada una matriz A cualquiera decimos que B es equivalente a A si podemos transformar A en B mediante una combinación de las siguientes operaciones: Multiplicar
EJERCICIOS RESUELTOS PROGRAMACIÓN III
EJERCICIOS RESUELTOS PROGRAMACIÓN III Curso 2008 2009 Ejercicios resueltos de programación 3 Tema 3. Notación asintótica. Alumna: Alicia Sánchez Centro: UNED-Las Rozas (Madrid) El índice de los ejercicios
Hasta ahora hemos estudiado potencias pertenecientes a distintos campos numéricos. n N, ( a 0 ) m a. m Z, n N
EXPONENCIALES Y LOGARITMOS FUNCIÓN EXPONENCIAL Hasta ahora hemos estudiado potencias pertenecientes a distintos campos numéricos. Potencias de eponente natural: a n = a. a. a... a n N n veces Potencias
DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO
I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos
Límite de una función
Límite de una función Idea intuitiva de límite El límite de la función f(x) en el punto x 0, es el valor al que se acercan las imágenes (las y) cuando los originales (las x) se acercan al valor x 0. Es
Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)
Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.
TEMA 4. Sistema Sexagesimal. Sistema Octal (base 8): sistema de numeración que utiliza los dígitos 0, 1, 2, 3, 4, 5,
TEMA 4 Sistema Sexagesimal 4.0.- Sistemas de numeración Son métodos (conjunto de símbolos y reglas) ideados por el hombre para contar elementos de un conjunto o agrupación de cosas. Se clasifican en sistemas
Apuntes de Matemática Discreta 9. Funciones
Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y
Clase 32: Árbol balanceado AVL
Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom [email protected] (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes
Universidad de Costa Rica Escuela de Matemática CONARE-PROYECTO RAMA. Funciones
Universidad de Costa Rica Escuela de Matemática CONARE-PROYECTO RAMA Funciones José R. Jiménez F. Temas de pre-cálculo I ciclo 007 Funciones 1 Índice 1. Funciones 3 1.1. Introducción...................................
Lección 24: Lenguaje algebraico y sustituciones
LECCIÓN Lección : Lenguaje algebraico y sustituciones En lecciones anteriores usted ya trabajó con ecuaciones. Las ecuaciones expresan una igualdad entre ciertas relaciones numéricas en las que se desconoce
UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.
UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. EL PLANO CARTESIANO. El plano cartesiano está formado
Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009
Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios Dra. Noemí L. Ruiz Limardo 2009 Objetivos de la Lección Al finalizar esta lección los estudiantes: Identificarán, de una lista de expresiones
Métodos Iterativos para Resolver Sistemas Lineales
Métodos Iterativos para Resolver Sistemas Lineales Departamento de Matemáticas, CCIR/ITESM 17 de julio de 2009 Índice 3.1. Introducción............................................... 1 3.2. Objetivos................................................
Capítulo 8 Teoría de la Complejidad Algorítmica
Capítulo 8 Teoría de la Complejidad Algorítmica Seguridad Informática y Criptografía Ultima actualización del archivo: 01/03/06 Este archivo tiene: 31 diapositivas v 4.1 Material Docente de Libre Distribución
by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true
by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad
Matrices Invertibles y Elementos de Álgebra Matricial
Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices
Ecuaciones de primer grado con dos incógnitas
Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad
Instituto Tecnológico de Celaya
LOS SISTEMAS DE REPRESENTACIÓN NUMÉRICA Es común escuchar que las computadoras utilizan el sistema binario para representar cantidades e instrucciones. En esta sección se describen las ideas principales
Unidad IV: Cinética química
63 Unidad IV: Cinética química El objetivo de la cinética química es el estudio de las velocidades de las reacciones químicas y de los factores de los que dependen dichas velocidades. De estos factores,
Ejemplo: Resolvemos Sin solución. O siempre es positiva o siempre es negativa. Damos un valor cualquiera Siempre + D(f) =
T1 Dominios, Límites, Asíntotas, Derivadas y Representación Gráfica. 1.1 Dominios de funciones: Polinómicas: D( = La X puede tomar cualquier valor entre Ejemplos: D( = Función racional: es el cociente
CAPÍTULO III. FUNCIONES
CAPÍTULO III LÍMITES DE FUNCIONES SECCIONES A Definición de límite y propiedades básicas B Infinitésimos Infinitésimos equivalentes C Límites infinitos Asíntotas D Ejercicios propuestos 85 A DEFINICIÓN
Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.
Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una
Cálculo de probabilidades con Scilab
Cálculo de probabilidades con Scilab En este tutorial se va a asumir que ya sabemos crear funciones y trabajar con bucles en scilab. Sin embargo, también se puede usar como práctica para aprer estos conceptos
Unidad 7 Aplicación de máximos y mínimos
Unidad 7 Aplicación de máimos y mínimos Objetivos Al terminar la unidad, el alumno: Interpretará el concepto de ingreso y costos marginal. Aplicará la función de ingresos en problemas de maimización. Aplicará
En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Análisis de propuestas de evaluación en las aulas de América Latina
Esta propuesta tiene como objetivo la operatoria con fracciones. Se espera del alumno la aplicación de un algoritmo para resolver las operaciones. Estas actividades comúnmente presentan numerosos ejercicios
No hay resorte que oscile cien años...
No hay resorte que oscile cien años... María Paula Coluccio y Patricia Picardo Laboratorio I de Física para Biólogos y Geólogos Depto. de Física, FCEyN, UBA - 1999 Resumen: En el presente trabajo nos proponemos
Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.
ESTRUCTURAS DE REPETICIÓN OBJETIVOS Aprender a construir grandes y complejos problemas a través de la ejecución repetida de una secuencia de proposiciones llamados ciclos o estructuras repetitivas. Distinguir
CESMA BUSINESS SCHOOL MATEMÁTICAS FINANCIERAS. TEMA 3 CAPITALIZACIÓN COMPUESTA
CESMA BUSINESS SCHOOL MATEMÁTICAS FINANCIERAS. TEMA 3 CAPITALIZACIÓN COMPUESTA Javier Bilbao García 1 1.- Capitalización Compuesta Definición: Operación financiera que persigue sustituir un capital por
Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL
ELECTRÓNICA DIGITAL La electrónica es la rama de la ciencia que se ocupa del estudio de los circuitos y de sus componentes, que permiten modificar la corriente eléctrica amplificándola, atenuándola, rectificándola
1 Espacios y subespacios vectoriales.
UNIVERSIDAD POLITÉCNICA DE CARTAGENA Departamento de Matemática Aplicada y Estadística Espacios vectoriales y sistemas de ecuaciones 1 Espacios y subespacios vectoriales Definición 1 Sea V un conjunto
Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria
Oliverio J. Santana Jaria 3. Aritmética tica binaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Para Los La en conocer muchos aritmética comprender otros binaria tipos
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio
Algoritmos sobre secuencias y conjuntos de datos
Suma de la Subsecuencia Máxima Dept. de Computación, Universidade da Coruña [email protected] Índice Suma de la Subsecuencia Máxima 1 Suma de la Subsecuencia Máxima 2 Suma de la Subsecuencia Máxima
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto
Los sistemas de numeración se clasifican en: posicionales y no posicionales.
SISTEMAS NUMERICOS Un sistema numérico es un conjunto de números que se relacionan para expresar la relación existente entre la cantidad y la unidad. Debido a que un número es un símbolo, podemos encontrar
Actividades con GeoGebra
Conectar Igualdad - "Netbooks Uno a Uno" Actividades con GeoGebra Nociones básicas, rectas Silvina Ponce Dawson Introducción. El GeoGeobra es un programa que permite explorar nociones matemáticas desde
Estructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge [email protected] Árboles binarios de búsqueda, Table of Contents
5 Ecuaciones lineales y conceptos elementales de funciones
Programa Inmersión, Verano 206 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 300 y MATE 3023 Clase #6: martes, 7 de junio de 206. 5 Ecuaciones lineales y conceptos elementales
Ejercicios de Programación Lineal
Ejercicios de Programación Lineal Investigación Operativa Ingeniería Informática, UCM Curso 8/9 Una compañía de transporte dispone de camiones con capacidad de 4 libras y de 5 camiones con capacidad de
Administración de proyectos. Organizar, planificar y programar los proyectos de software
Administración de proyectos Organizar, planificar y programar los proyectos de software Administración de proyectos Trata de las actividades que hay que realizar para asegurar que el software se entregará
Algorítmica y Lenguajes de Programación. Ordenación (i)
Algorítmica y Lenguajes de Programación Ordenación (i) Ordenación. Introducción A lo largo del curso hemos visto distintas formas de almacenar datos: Vectores. Matrices. Ficheros Listas (pilas y colas)
Sistemas de numeración
Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan
342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO.
342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO. ALGUNAS APLICACIONES A LA TEORIA DE LAS FORMAS BINARIAS. Encontrar una forma cuya duplicación produce una forma dada del género principal. Puesto que los elementos
1.3 Números racionales
1.3 1.3.1 El concepto de número racional Figura 1.2: Un reparto no equitativo: 12 5 =?. Figura 1.3: Un quinto de la unidad. Con los números naturales y enteros es imposible resolver cuestiones tan simples
Algoritmos y Estructuras de Datos II
16 de marzo de 2015 Contenidos 1 Análisis de algoritmos 2 3 La idea El algoritmo Ejemplo Análisis Ordenación por selección vs. inserción selección: a a[1,i) mínimos ordenados a[i,n] aún no seleccionados
Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE
Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de
CALCULADORA CIENTÍFICA
CALCULADORA CIENTÍFICA Existen varios tipos de "calculadoras" La ásica, que cuenta con las operaciones fundamentales y algunas veces raíz cuadrada, esta se usa para cálculos sencillos La sumadora, tiene
UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos:
UNIDAD Nº 1: TECNICATURA EN INFORMATICA UNLAR - CHEPES 1.1. INTRODUCCION 1. SISTEMAS DE NUMERACION El mundo del computador es un mundo binario. Por el contrario, el mundo de la información, manejada por
RELACIONES DE RECURRENCIA
Unidad 3 RELACIONES DE RECURRENCIA 60 Capítulo 5 RECURSIÓN Objetivo general Conocer en forma introductoria los conceptos propios de la recurrencia en relación con matemática discreta. Objetivos específicos
TEMA 2: Representación de la Información en las computadoras
TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario
Sorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
FUNCIONES DE UNA VARIABLE Julián de la Horra Departamento de Matemáticas U.A.M.
FUNCIONES DE UNA VARIABLE Julián de la Horra Departamento de Matemáticas U.A.M. 1 Introducción Una de las primeras necesidades que surgen en las Ciencias Experimentales es la de poder expresar los valores
Problemas fáciles, difíciles y muy difíciles
Problemas fáciles, difíciles y muy difíciles Santiago Figueira Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación Semana de la Computación 2006 Métodos efectivos
UNIDAD 1. LOS NÚMEROS ENTEROS.
UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar
SISTEMAS DE NUMERACIÓN. www.portalelectrozona.com
SISTEMA DECIMAL El sistema decimal, como su nombre indica, tiene diez cifras o dígitos distintos, que son 4 5 Por lo tanto, diremos que la BASE del sistema de numeración DECIMAL es (base ). 6 7 8 9 Pongamos
ESTRATEGIAS DE CÁLCULO MENTAL
ESTRATEGIAS DE CÁLCULO MENTAL El cálculo mental consiste en realizar cálculos matemáticos utilizando sólo el cerebro sin ayudas de otros instrumentos como calculadoras o incluso lápiz y papel. Las operaciones
March 25, 2010 CAPÍTULO 2: LÍMITES Y CONTINUIDAD DE FUNCIONES EN EL ESPACIO EUCLÍDEO
March 25, 2010 CAPÍTULO 2: LÍMITE Y CONTINUIDAD DE FUNCIONE EN EL EPACIO EUCLÍDEO 1. Producto Escalar en R n Definición 1.1. Dado x = (x 1,..., x n ), y = (y 1,..., y n ) R n, su producto escalar está
Primer Parcial de Programación 3 (1/10/2009)
Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión
