SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
1
Introducción
En este trabajo relacionado con la Aritmética Modular se mencionarán y
explicarán los tipos de algoritmos de búsqueda, los métodos de transformación de
claves, desventajas del hashing. Explicaremos también qué pasa cuando existe
coincidencia de direcciones, explicando con ejemplos los casos propuestos.
2
ANÁLISIS ALGORITMOS
Algoritmos de Búsqueda
La forma en que funciona un algoritmo de búsqueda es lograr ubicar
información dentro de una colección de datos dados. Lo que cabe destacar de
esto, es saber si un elemento pertenece o no a una estructura de datos, en caso
de pertenecer se necesita saber el índice de la lista en el que se encuentra el
elemento.
Entre los Algoritmos de Búsqueda los que más destacan son: Búsqueda
Secuencial o lineal, Búsqueda Binaria y las Técnicas de Hashing.
3
Búsqueda lineal o secuencial.
La búsqueda lineal es la técnica más sencilla para encontrar un elemento en
una lista de datos, esto consiste en recorrer un arreglo elemento a elemento e ir
comparando con el valor deseado (clave), hasta que se encuentre o finalice el
arreglo.
La búsqueda finaliza exitosamente, es decir encontró el dato buscado, lo
que se necesita conocer es en qué posición fue encontrado el dato buscado,
también está la posibilidad de que la búsqueda termine sin éxito, esto es cuando
se determina que no se obtiene ningún registro con esa llave. Esto se puede
aplicar en todos los tipos de búsqueda.
El proceso en sí de la búsqueda lineal es comenzar a comparar desde la
primera casilla del arreglo y se observan una a una las casillas hasta que se
encuentra el elemento o hasta terminar con las casillas de la lista sin obtener el
resultado.
En la búsqueda lineal no requiere que el arreglo se encuentre en algún
orden en particular ya que existe la misma probabilidad de que el valor se
encuentre en el primer elemento (el mejor caso) o en el último elemento (el peor
caso), por lo tanto en promedio el programa tendrá que comparar el valor buscado
con la mitad de los elementos del arreglo.
Algunas desventajas de la búsqueda lineal es que el método funciona bien
con arreglos pequeños o para arreglos no ordenados.
Este método de búsqueda es muy lento, pero si los datos no están en
orden, es el único método que puede utilizarse para hacer las búsquedas.
Ejemplo:
4
Complejidad de búsqueda lineal
MEJOR CASO:
Si tenemos mucha suerte, puede ser que la primera posición examinada
contenga el elemento que buscamos, en cuyo caso el algoritmo informará que tuvo
éxito después de una sola comparación. Por tanto, su complejidad será O (1).
PEOR CASO:
Sucede cuando encontramos X en la última posición del array. Como se
requieren n ejecuciones del bucle mientras, la cantidad de tiempo es proporcional
a la longitud del array n, más un cierto tiempo para realizar las condiciones del
bucle mientras y para la llamada al método. Por lo tanto, la cantidad de tiempo es
de la forma an + b para ciertas constantes ay b. En notación O, O (an+b) = O
(an) = O(n).
CASO MEDIO:
Supongamos que cada elemento almacenado tiene la misma probabilidad de
ser buscado. La media se puede calcular tomando el tiempo total de encontrar
todos los elementos y dividiéndolo por n: Total = a (1 + 2 +...+n) + bn = a
(n(n+1) / 2) + bn Media = (Total / n) = a ((n+1) / 2) + b que es O(n).
5
Búsqueda binaria
Para poder utilizar este algoritmo, el arreglo debe estar ordenado y no
deben haber elemento repetidos, esta búsqueda consiste en primer lugar comparar
el componente central del arreglo si este coincide la búsqueda finaliza y si no es el
valor buscado, entonces se divide el arreglo en dos subarreglos más pequeños y se
continua con el que puede contener el valor buscado esto si define al comparar el
valor central y si el elemento que estoy comparando es mayor que el del valor
central entonces continuare la búsqueda con el subarreglo de la derecha y
nuevamente comparando el valor central y generando otros subarreglos en forma
consecutiva hasta dar con el valor a encontrar en este caso termina el algoritmo o
si el tamaño del intervalo de búsqueda queda anulado.
Este mecanismo es muy eficiente para buscar un elemento cualquiera que
esté en una lista ordenada y recibe el nombre de búsqueda binaria o dicotómica
cuya resolución se basa en algoritmo de divisiones sucesivas en mitades.
EJEMPLO
Se intenta buscar el elemento 3 en el arreglo {1,2,3,4,5,6,7,8,9}, se
realizaran los siguientes pasos.
Se toma el elemento central y se divide en dos subarreglos
6
Búsqueda mediante Transformación de Claves (Hashing)
Este método genera claves o llaves que representen de manera casi unívoca
a un documento o conjunto de datos. Este método nos permite aumentar
la velocidad de búsqueda sin necesidad de tener los elementos ordenados. Cuenta
también con la ventaja de que el tiempo de búsqueda es
prácticamente independiente del número de componentes del arreglo.
Una importante desventaja de hashing es que el conjunto de posibles claves
es siempre mayor al número de espacios disponibles. Es decir, dos o más claves
pueden asignarse a la misma dirección en la tabla de hash. Cuando dos claves se
direccionan a la misma dirección o bucket se dice que hay una colisión, y a las
claves se les denomina sinónimos.
Cuando hay colisiones se requiere de un proceso adicional para encontrar
una posición disponible para la clave. Esto obviamente degrada la eficiencia del
método, por lo que se trata de evitar al máximo esta situación. Una función de
hashing que logra evitar al 100% las colisiones es conocida como hashing
perfecto.
7
Si una empresa tiene 100 empleados, y si a cada empleado se le asigna un
código como número de identificación de 1 a 100, evidentemente puede existir
una correspondencia directa entre la clave y la dirección definida en un vector de
100 elementos.
En otro caso si la empresa tiene 80.000 empleados ya no se puede utilizar
la relación entre la clave y la dirección.
Este método consiste en la transformación de claves (dadas numéricas o
alfanuméricas) en una dirección (índice) dentro del vector.
La correspondencia entre las claves y la dirección en el vector se establece por una
dirección definida de conversión (función hash).
Métodos de transformación de claves.
Existen numerosos métodos de transformación de claves
1. Truncamiento
2. Plegamiento
3. Aritmética Modular
4. Mitad del Cuadrado
8
TRUNCAMIENTO
Ignora parte de la clave y utiliza la parte restante directamente como
índice (Considerando campos no numéricos y sus códigos numéricos) .Si las
claves por ejemplo, son enteros de 8 dígitos y la tabla de transformación
tiene 1000 posiciones entonces el primero, segundo y quinto dígitos desde la
derecha pueden formar la función de conversión.
0
Clave=72588495
:
El truncamiento es un método muy rápido pero falla para distribuir las claves
de modo uniforme.
Ejemplos:
12345678 --> 138
13602499 --> 169
71140205 --> 715
73162135 --> 715
9
PLEGAMIENTO
Consiste en la partición de la clave en diferentes partes y la
combinación de las partes en un modo conveniente (a menudo utilizando
suma o multiplicación) para obtener el índice .La clave x se divide en varias
partes donde cada parte tienen el mismo número de dígitos que la dirección
especificada.
1000 000 a 999 Fx=x1+x2+x3...+xn
625 381 94 625+381+94=1100 100
Esta técnica consiste en la partición de la clave en diferentes partes y
la combinación de las partes en un modo conveniente (a menudo utilizando suma o
multiplicación) para obtener el índice.
Ejemplo 1:
Un entero de 8 dígitos se puede dividir en grupos de tres (3), tres (3) y dos(2)
dígitos, los grupos se suman y se truncan si es necesario para que estén en el rango
adecuado de índices.
Se considera la clave 62538194 y el número de direcciones es 100:
H (clave)=625 + 381 + 94 =1100 se trunca -> H (clave)=100
Ejemplo 2:
El número de identificación de los empleados es el campo clave de una
empresa y consta de cuatro dígitos y las direcciones reales son
100. Se desea calcular las direcciones correspondientes por el método de
plegamiento.
Claves: 4205, 3355, 8148
H(4205) = 42 + 05 = 47
H(3355) = 33 + 55 = 88
H(8148) = 81 + 48 = 129 –> 129-100 =29
10
ARITMÉTICA MODULAR
Convertir la clave a un entero, dividir por el tamaño del rango del
índice y tomar el resto como resultado. La función de conversión utilizada es
MOD (Modulo o resta de división entera).
Donde el mes el tamaño del arreglo con índices de 0 hasta n-1. Los valores
de la función y direcciones van de 0 a n-1 ligeramente menor al tamaño del
array. La mejor elección de los módulos son los números primos.
M=100 F(x) = x mod 100
X=234661234
F(x) =234661234 mod 100 =34
La clave de búsqueda en una cadena de caracteres tal como el
nombre para obtener direcciones de conversión el método más simple es
asignar a cada caracter de la cadena un valor entero (ejemplo A=1, B=2,
C=3, etc.) y sumar los valores de los caracteres en la cadena al resultado se
le aplica entonces el modulo.
Ejemplos:
12345678 --> 7
13602499 --> 1
71140205 --> 6
73062138 --> 6
Ejemplo1:
Un vector T tiene cien posiciones (0..100). Se tiene que las claves
de búsqueda de los elementos de la tabla son enteros positivos.
Calcular la dirección si la clave es: 234661234.
Si clave=234661234
Y el tamaño del rango del vector = 101. Entonces:
234661234 MOD 101 = 56
11
Ejemplo2:
Se tiene un array con 100 posiciones para guardar las claves de los
empleados. Aplicar las funciones para cada uno de los siguientes
empleados:
3205 7148 2345
Usando la Aritmética Modular (Método de la división)
Escojo un numero primo próximo a 100 (m=97). Aplico la función hash H(x)
= X / m
H(3205)=4 H(7148)=67 H(2345)=17
EJEMPLO 3:
Que se debe hacer cuando las claves son distintas y la dirección
es la misma en el caso del método de división.
El tamaño del arreglo N=100, sus direcciones van de 1-100.
Sea K1 = 7259 H(K1) = (7259 mod 100)+1=60
K2 = 9359 H(K2) = (9359 mod 100)+1=60
Claves distintas y direcciones iguales estamos en presencia de una colisión.
Se aplica N igual a un valor primo en lugar de utilizar el N=100
H(K1)=(7259 mod 97) +1 = 82
H(K2)=(9359 mod 97) + 1 = 48
Con N= 97 se ha eliminado la colisión ya que las direcciones ahora son
distintas.
12
MITAD DEL CUADRADO
Este método consiste en calcular el cuadrado de la clave x. La
función de conversión se define como F(x)=C donde C se obtiene eliminado
dígitos de ambos extremos de x2; para todas las claves se deben usar las
mismas posiciones de x2. Ejemplo:
Una empresa tiene 80 empleados y cada uno de ellos tiene un número de
identificación de 4 dígitos y el conjunto de direcciones de memoria varia en
un rango de 0 a 100 calcular las direcciones que se obtendrán al aplicar
mitad del cuadrado.
Clave x x2 4 y 5
4205 176 82 025 82
7148 510 93 904 93
3350 112 22 500 22
Ejemplos:
136*136=18496 --> 84
730*730=532900 --> 29
301*301=90601 --> 06
625*625=390625 --> 06
13
Cuadro comparativo
Búsqueda lineal Búsqueda binaria
Búsqueda por transformación de claves (Hashing)
Truncamiento Plegamiento Aritmética modular Mitad del cuadrado
Orden del vector
Este método de búsqueda
no requiere ningún
requisito por parte del
vector.
Requiere que el vector se
encuentre ordenado para
realizar la búsqueda.
Los registros del campo clave no necesitan estar ordenados de acuerdo a los valores del campo clave.
Características
Toma el valor a encontrar
y lo compara con cada
uno de los valores hasta
que lo encuentra o
termina de leer el vector
Examina primero el
elemento central del vector,
comparándolo si no es
divide el vector y sigue con
las subpartes, hasta que
encuentra el valor o termine
el vector.
Ignora parte de la
clave y utiliza la
parte restante
directamente como
índice
consiste en la partición
de la clave en
diferentes partes y la
combinación de las
partes en un modo
conveniente (a menudo
utilizando suma o
Multiplicación) para
obtener el índice.
Convierte la clave a un entero,
se divide por el tamaño del
rango del índice y toma el resto
como resultado. La función que
se utiliza es el MOD(módulo o
resto de la división entera).
Consiste en calcular el
cuadrado de la clave x.
La función de conversión se
define como: H(x)=c
Donde c se obtiene
eliminando dígitos a ambos
lados de x2
Excepciones
No encontrar en el vector
el valor a buscar.
No encontrar en el vector el
valor a buscar.
Cuando existen
claves diferentes y
los índices
obtenidos son
iguales en
diferentes
búsquedas
Cuando la última parte
que depende del largo
del número, si es par y
las divisiones sea
número impar quedara
la última división
diferente, lo mismo en
caso contrario y según
como se definido el
algoritmo.
Cuando el vector es de un
tamaño definido y el resultado
es mayor que ese tamaño se le
resta el mismo.
Cuando la clave a ordenar es
impar se toma el digito del
medio y el anterior o se
puede tomar el siguiente,
según sea definido el
algoritmo.
14
Conclusión
Debido a las propiedades reversibles que caracterizan a la aritmética
modular, es posible utilizarla en operaciones de cifrado y descifrado, al tener su
función inversa, pudiendo lograr tanto la codificación y decodificación de
información. Podemos darnos cuenta de la importancia que presenta la aritmética
modular en la seguridad, en el ámbito de la información. Es interesante también
como se complementa con las operaciones matemáticas.
En este trabajo de investigación abordamos el tema de la aritmética modular,
en conjunto con otros temas relacionados con los algoritmos de búsqueda,
exponiendo ejemplos y dando un claro ejemplo de su funcionamiento.

Más contenido relacionado

La actualidad más candente (17)

Notaciones Relacionales
Notaciones RelacionalesNotaciones Relacionales
Notaciones Relacionales
 
Inteligencia Artificial.
Inteligencia Artificial.Inteligencia Artificial.
Inteligencia Artificial.
 
Taller excel yurian
Taller excel yurianTaller excel yurian
Taller excel yurian
 
Excel funciones básicas
Excel funciones básicasExcel funciones básicas
Excel funciones básicas
 
La serie de taylor
La serie de taylorLa serie de taylor
La serie de taylor
 
Manual de funciones
Manual de funcionesManual de funciones
Manual de funciones
 
Fórmulas y funciones
Fórmulas y funcionesFórmulas y funciones
Fórmulas y funciones
 
Formulas de excel
Formulas de excelFormulas de excel
Formulas de excel
 
Calculo relacional1
Calculo relacional1Calculo relacional1
Calculo relacional1
 
Actividad 1 foro unidad 3
Actividad 1 foro unidad 3Actividad 1 foro unidad 3
Actividad 1 foro unidad 3
 
Funciones
FuncionesFunciones
Funciones
 
Efrain l. cortez z. pdf
Efrain l. cortez z. pdfEfrain l. cortez z. pdf
Efrain l. cortez z. pdf
 
Función buscarh
Función buscarhFunción buscarh
Función buscarh
 
Manual de excel en las funciones lógicas si y la función buscarv
Manual de excel en las funciones lógicas si y la función buscarvManual de excel en las funciones lógicas si y la función buscarv
Manual de excel en las funciones lógicas si y la función buscarv
 
Fórmulas y funciones
Fórmulas y funcionesFórmulas y funciones
Fórmulas y funciones
 
FUNCIONES DE EXCEL
FUNCIONES DE EXCELFUNCIONES DE EXCEL
FUNCIONES DE EXCEL
 
Fórmulas y funciones (1)
Fórmulas y funciones (1)Fórmulas y funciones (1)
Fórmulas y funciones (1)
 

Similar a Informe aritmetica modular

Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Rubi Veronica Chimal Cuxin
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busquedaJohnfornerod
 
Metodos de Búsqueda
Metodos de BúsquedaMetodos de Búsqueda
Metodos de BúsquedaPedro Avaria
 
método de búsqueda Truncamiento
método de búsqueda Truncamientométodo de búsqueda Truncamiento
método de búsqueda TruncamientoCristopher Blum
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoLutzo Guzmán
 
Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficiosejosue23
 
Hash mitad al cuadrado pdf
Hash mitad al cuadrado pdfHash mitad al cuadrado pdf
Hash mitad al cuadrado pdfCarlos Carriel
 
Eficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parteEficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parteUVM
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaOsirysRock
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busquedaGonzalo Retamal
 
Estructura de dato unidad 6
Estructura de dato unidad 6Estructura de dato unidad 6
Estructura de dato unidad 6lenithoz
 
ALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxEverMuchairo1
 
Algoritmos de búsquedaDF
Algoritmos de búsquedaDFAlgoritmos de búsquedaDF
Algoritmos de búsquedaDFdaniel fuentes
 

Similar a Informe aritmetica modular (20)

Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
Metodos de Búsqueda
Metodos de BúsquedaMetodos de Búsqueda
Metodos de Búsqueda
 
método de búsqueda Truncamiento
método de búsqueda Truncamientométodo de búsqueda Truncamiento
método de búsqueda Truncamiento
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
Algoritmos de búsqueda
Algoritmos de búsqueda Algoritmos de búsqueda
Algoritmos de búsqueda
 
Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficios
 
Hash mitad al cuadrado pdf
Hash mitad al cuadrado pdfHash mitad al cuadrado pdf
Hash mitad al cuadrado pdf
 
Hash mitad al cuadrado pdf
Hash mitad al cuadrado pdfHash mitad al cuadrado pdf
Hash mitad al cuadrado pdf
 
Arrays.pdf
Arrays.pdfArrays.pdf
Arrays.pdf
 
Arreglos enitmar
Arreglos enitmarArreglos enitmar
Arreglos enitmar
 
Eficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parteEficiencia de los lenguajes basados en reglas 2a parte
Eficiencia de los lenguajes basados en reglas 2a parte
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busqueda
 
Estructura de dato unidad 6
Estructura de dato unidad 6Estructura de dato unidad 6
Estructura de dato unidad 6
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
ALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptx
 
Algoritmos de búsquedaDF
Algoritmos de búsquedaDFAlgoritmos de búsquedaDF
Algoritmos de búsquedaDF
 

Último

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfluisantoniocruzcorte1
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 

Último (20)

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 

Informe aritmetica modular

  • 1. 1 Introducción En este trabajo relacionado con la Aritmética Modular se mencionarán y explicarán los tipos de algoritmos de búsqueda, los métodos de transformación de claves, desventajas del hashing. Explicaremos también qué pasa cuando existe coincidencia de direcciones, explicando con ejemplos los casos propuestos.
  • 2. 2 ANÁLISIS ALGORITMOS Algoritmos de Búsqueda La forma en que funciona un algoritmo de búsqueda es lograr ubicar información dentro de una colección de datos dados. Lo que cabe destacar de esto, es saber si un elemento pertenece o no a una estructura de datos, en caso de pertenecer se necesita saber el índice de la lista en el que se encuentra el elemento. Entre los Algoritmos de Búsqueda los que más destacan son: Búsqueda Secuencial o lineal, Búsqueda Binaria y las Técnicas de Hashing.
  • 3. 3 Búsqueda lineal o secuencial. La búsqueda lineal es la técnica más sencilla para encontrar un elemento en una lista de datos, esto consiste en recorrer un arreglo elemento a elemento e ir comparando con el valor deseado (clave), hasta que se encuentre o finalice el arreglo. La búsqueda finaliza exitosamente, es decir encontró el dato buscado, lo que se necesita conocer es en qué posición fue encontrado el dato buscado, también está la posibilidad de que la búsqueda termine sin éxito, esto es cuando se determina que no se obtiene ningún registro con esa llave. Esto se puede aplicar en todos los tipos de búsqueda. El proceso en sí de la búsqueda lineal es comenzar a comparar desde la primera casilla del arreglo y se observan una a una las casillas hasta que se encuentra el elemento o hasta terminar con las casillas de la lista sin obtener el resultado. En la búsqueda lineal no requiere que el arreglo se encuentre en algún orden en particular ya que existe la misma probabilidad de que el valor se encuentre en el primer elemento (el mejor caso) o en el último elemento (el peor caso), por lo tanto en promedio el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo. Algunas desventajas de la búsqueda lineal es que el método funciona bien con arreglos pequeños o para arreglos no ordenados. Este método de búsqueda es muy lento, pero si los datos no están en orden, es el único método que puede utilizarse para hacer las búsquedas. Ejemplo:
  • 4. 4 Complejidad de búsqueda lineal MEJOR CASO: Si tenemos mucha suerte, puede ser que la primera posición examinada contenga el elemento que buscamos, en cuyo caso el algoritmo informará que tuvo éxito después de una sola comparación. Por tanto, su complejidad será O (1). PEOR CASO: Sucede cuando encontramos X en la última posición del array. Como se requieren n ejecuciones del bucle mientras, la cantidad de tiempo es proporcional a la longitud del array n, más un cierto tiempo para realizar las condiciones del bucle mientras y para la llamada al método. Por lo tanto, la cantidad de tiempo es de la forma an + b para ciertas constantes ay b. En notación O, O (an+b) = O (an) = O(n). CASO MEDIO: Supongamos que cada elemento almacenado tiene la misma probabilidad de ser buscado. La media se puede calcular tomando el tiempo total de encontrar todos los elementos y dividiéndolo por n: Total = a (1 + 2 +...+n) + bn = a (n(n+1) / 2) + bn Media = (Total / n) = a ((n+1) / 2) + b que es O(n).
  • 5. 5 Búsqueda binaria Para poder utilizar este algoritmo, el arreglo debe estar ordenado y no deben haber elemento repetidos, esta búsqueda consiste en primer lugar comparar el componente central del arreglo si este coincide la búsqueda finaliza y si no es el valor buscado, entonces se divide el arreglo en dos subarreglos más pequeños y se continua con el que puede contener el valor buscado esto si define al comparar el valor central y si el elemento que estoy comparando es mayor que el del valor central entonces continuare la búsqueda con el subarreglo de la derecha y nuevamente comparando el valor central y generando otros subarreglos en forma consecutiva hasta dar con el valor a encontrar en este caso termina el algoritmo o si el tamaño del intervalo de búsqueda queda anulado. Este mecanismo es muy eficiente para buscar un elemento cualquiera que esté en una lista ordenada y recibe el nombre de búsqueda binaria o dicotómica cuya resolución se basa en algoritmo de divisiones sucesivas en mitades. EJEMPLO Se intenta buscar el elemento 3 en el arreglo {1,2,3,4,5,6,7,8,9}, se realizaran los siguientes pasos. Se toma el elemento central y se divide en dos subarreglos
  • 6. 6 Búsqueda mediante Transformación de Claves (Hashing) Este método genera claves o llaves que representen de manera casi unívoca a un documento o conjunto de datos. Este método nos permite aumentar la velocidad de búsqueda sin necesidad de tener los elementos ordenados. Cuenta también con la ventaja de que el tiempo de búsqueda es prácticamente independiente del número de componentes del arreglo. Una importante desventaja de hashing es que el conjunto de posibles claves es siempre mayor al número de espacios disponibles. Es decir, dos o más claves pueden asignarse a la misma dirección en la tabla de hash. Cuando dos claves se direccionan a la misma dirección o bucket se dice que hay una colisión, y a las claves se les denomina sinónimos. Cuando hay colisiones se requiere de un proceso adicional para encontrar una posición disponible para la clave. Esto obviamente degrada la eficiencia del método, por lo que se trata de evitar al máximo esta situación. Una función de hashing que logra evitar al 100% las colisiones es conocida como hashing perfecto.
  • 7. 7 Si una empresa tiene 100 empleados, y si a cada empleado se le asigna un código como número de identificación de 1 a 100, evidentemente puede existir una correspondencia directa entre la clave y la dirección definida en un vector de 100 elementos. En otro caso si la empresa tiene 80.000 empleados ya no se puede utilizar la relación entre la clave y la dirección. Este método consiste en la transformación de claves (dadas numéricas o alfanuméricas) en una dirección (índice) dentro del vector. La correspondencia entre las claves y la dirección en el vector se establece por una dirección definida de conversión (función hash). Métodos de transformación de claves. Existen numerosos métodos de transformación de claves 1. Truncamiento 2. Plegamiento 3. Aritmética Modular 4. Mitad del Cuadrado
  • 8. 8 TRUNCAMIENTO Ignora parte de la clave y utiliza la parte restante directamente como índice (Considerando campos no numéricos y sus códigos numéricos) .Si las claves por ejemplo, son enteros de 8 dígitos y la tabla de transformación tiene 1000 posiciones entonces el primero, segundo y quinto dígitos desde la derecha pueden formar la función de conversión. 0 Clave=72588495 : El truncamiento es un método muy rápido pero falla para distribuir las claves de modo uniforme. Ejemplos: 12345678 --> 138 13602499 --> 169 71140205 --> 715 73162135 --> 715
  • 9. 9 PLEGAMIENTO Consiste en la partición de la clave en diferentes partes y la combinación de las partes en un modo conveniente (a menudo utilizando suma o multiplicación) para obtener el índice .La clave x se divide en varias partes donde cada parte tienen el mismo número de dígitos que la dirección especificada. 1000 000 a 999 Fx=x1+x2+x3...+xn 625 381 94 625+381+94=1100 100 Esta técnica consiste en la partición de la clave en diferentes partes y la combinación de las partes en un modo conveniente (a menudo utilizando suma o multiplicación) para obtener el índice. Ejemplo 1: Un entero de 8 dígitos se puede dividir en grupos de tres (3), tres (3) y dos(2) dígitos, los grupos se suman y se truncan si es necesario para que estén en el rango adecuado de índices. Se considera la clave 62538194 y el número de direcciones es 100: H (clave)=625 + 381 + 94 =1100 se trunca -> H (clave)=100 Ejemplo 2: El número de identificación de los empleados es el campo clave de una empresa y consta de cuatro dígitos y las direcciones reales son 100. Se desea calcular las direcciones correspondientes por el método de plegamiento. Claves: 4205, 3355, 8148 H(4205) = 42 + 05 = 47 H(3355) = 33 + 55 = 88 H(8148) = 81 + 48 = 129 –> 129-100 =29
  • 10. 10 ARITMÉTICA MODULAR Convertir la clave a un entero, dividir por el tamaño del rango del índice y tomar el resto como resultado. La función de conversión utilizada es MOD (Modulo o resta de división entera). Donde el mes el tamaño del arreglo con índices de 0 hasta n-1. Los valores de la función y direcciones van de 0 a n-1 ligeramente menor al tamaño del array. La mejor elección de los módulos son los números primos. M=100 F(x) = x mod 100 X=234661234 F(x) =234661234 mod 100 =34 La clave de búsqueda en una cadena de caracteres tal como el nombre para obtener direcciones de conversión el método más simple es asignar a cada caracter de la cadena un valor entero (ejemplo A=1, B=2, C=3, etc.) y sumar los valores de los caracteres en la cadena al resultado se le aplica entonces el modulo. Ejemplos: 12345678 --> 7 13602499 --> 1 71140205 --> 6 73062138 --> 6 Ejemplo1: Un vector T tiene cien posiciones (0..100). Se tiene que las claves de búsqueda de los elementos de la tabla son enteros positivos. Calcular la dirección si la clave es: 234661234. Si clave=234661234 Y el tamaño del rango del vector = 101. Entonces: 234661234 MOD 101 = 56
  • 11. 11 Ejemplo2: Se tiene un array con 100 posiciones para guardar las claves de los empleados. Aplicar las funciones para cada uno de los siguientes empleados: 3205 7148 2345 Usando la Aritmética Modular (Método de la división) Escojo un numero primo próximo a 100 (m=97). Aplico la función hash H(x) = X / m H(3205)=4 H(7148)=67 H(2345)=17 EJEMPLO 3: Que se debe hacer cuando las claves son distintas y la dirección es la misma en el caso del método de división. El tamaño del arreglo N=100, sus direcciones van de 1-100. Sea K1 = 7259 H(K1) = (7259 mod 100)+1=60 K2 = 9359 H(K2) = (9359 mod 100)+1=60 Claves distintas y direcciones iguales estamos en presencia de una colisión. Se aplica N igual a un valor primo en lugar de utilizar el N=100 H(K1)=(7259 mod 97) +1 = 82 H(K2)=(9359 mod 97) + 1 = 48 Con N= 97 se ha eliminado la colisión ya que las direcciones ahora son distintas.
  • 12. 12 MITAD DEL CUADRADO Este método consiste en calcular el cuadrado de la clave x. La función de conversión se define como F(x)=C donde C se obtiene eliminado dígitos de ambos extremos de x2; para todas las claves se deben usar las mismas posiciones de x2. Ejemplo: Una empresa tiene 80 empleados y cada uno de ellos tiene un número de identificación de 4 dígitos y el conjunto de direcciones de memoria varia en un rango de 0 a 100 calcular las direcciones que se obtendrán al aplicar mitad del cuadrado. Clave x x2 4 y 5 4205 176 82 025 82 7148 510 93 904 93 3350 112 22 500 22 Ejemplos: 136*136=18496 --> 84 730*730=532900 --> 29 301*301=90601 --> 06 625*625=390625 --> 06
  • 13. 13 Cuadro comparativo Búsqueda lineal Búsqueda binaria Búsqueda por transformación de claves (Hashing) Truncamiento Plegamiento Aritmética modular Mitad del cuadrado Orden del vector Este método de búsqueda no requiere ningún requisito por parte del vector. Requiere que el vector se encuentre ordenado para realizar la búsqueda. Los registros del campo clave no necesitan estar ordenados de acuerdo a los valores del campo clave. Características Toma el valor a encontrar y lo compara con cada uno de los valores hasta que lo encuentra o termina de leer el vector Examina primero el elemento central del vector, comparándolo si no es divide el vector y sigue con las subpartes, hasta que encuentra el valor o termine el vector. Ignora parte de la clave y utiliza la parte restante directamente como índice consiste en la partición de la clave en diferentes partes y la combinación de las partes en un modo conveniente (a menudo utilizando suma o Multiplicación) para obtener el índice. Convierte la clave a un entero, se divide por el tamaño del rango del índice y toma el resto como resultado. La función que se utiliza es el MOD(módulo o resto de la división entera). Consiste en calcular el cuadrado de la clave x. La función de conversión se define como: H(x)=c Donde c se obtiene eliminando dígitos a ambos lados de x2 Excepciones No encontrar en el vector el valor a buscar. No encontrar en el vector el valor a buscar. Cuando existen claves diferentes y los índices obtenidos son iguales en diferentes búsquedas Cuando la última parte que depende del largo del número, si es par y las divisiones sea número impar quedara la última división diferente, lo mismo en caso contrario y según como se definido el algoritmo. Cuando el vector es de un tamaño definido y el resultado es mayor que ese tamaño se le resta el mismo. Cuando la clave a ordenar es impar se toma el digito del medio y el anterior o se puede tomar el siguiente, según sea definido el algoritmo.
  • 14. 14 Conclusión Debido a las propiedades reversibles que caracterizan a la aritmética modular, es posible utilizarla en operaciones de cifrado y descifrado, al tener su función inversa, pudiendo lograr tanto la codificación y decodificación de información. Podemos darnos cuenta de la importancia que presenta la aritmética modular en la seguridad, en el ámbito de la información. Es interesante también como se complementa con las operaciones matemáticas. En este trabajo de investigación abordamos el tema de la aritmética modular, en conjunto con otros temas relacionados con los algoritmos de búsqueda, exponiendo ejemplos y dando un claro ejemplo de su funcionamiento.