Está en la página 1de 15

Clase del 15/9/23

Algoritmia

2da. Parte
2da. Parte
En la primera parte de este curso vimos:

Algoritmia. Inducción, combinatoria, series, probabilidades, sumatorias y productorias,


cuantificadores, lógica proposicional, razonamiento deductivo, función piso y función techo.
Complejidad algorítmica. Notación asintótica y función orden. Primeros 7 órdenes elementales y
cálculo de eficiencias algorítmicas. 5 reglas básicas para el cálculo de complejidad. Cómo se
calcula el orden en una estructura de decisión y por qué existe una jerarquía entre los distintos
órdenes. Cálculo por sumatorias, algoritmos de mcd y Fibonacci, tablas comparativas de tiempos
de ejecución, constantes ocultas y búsqueda de puntos de inflexión. Búsqueda secuencial y
binaria. Tablas de tiempos referentes al crecimiento asintótico. Ejercitación.

En esta segunda parte veremos:

Congruencia. Propiedades. Operaciones. Metodos de Fermat y binario. Isbn y cuit.


Criptología. Métodos Cesar, Vigenere, Sustitución y RSA.
Algoritmos numéricos y propagación del error. Aplicaciones.
Programación dinámica. Problema de la mochila. Aplicaciones.
Generación de números aleatorios.
Congruencia
Aplicaciones:
Los conceptos de congruencia se utilizan, entre otras cosas, en:

Criptología
Procesamiento de señales
Generación de números aleatorios
Detectores de errores
Autocorrectores
Cálculo de dígito autoverificador
Definición
La congruencia es una relación aritmética entre números. Está definida sobre los
enteros, pero en este curso solamente trabajaremos sobre los naturales.
Dos números a y b son congruentes entre sí módulo m, si tienen el mismo resto al ser
divididos por m.

Sintaxis: a ≡ b (m) y se lee : a es congruente a b módulo m (a y b tienen el


mismo resto al dividirlos por m) (Siempre m <> 0)

Una definición más formal es la siguiente:

Dados a,b,m (m<>0), se dice que a es congruente a b módulo m si y solo si ( a – b ) es


múltiplo de m. (Es decir, la diferencia entre ambos, o la distancia entre ambos, es
múltiplo de m).
.

Por ejemplo, 13 es congruente a 7 mod 3 ya que tanto 13 como 7 dan resto 1 al


dividirlos por 3. ( 13 ≡ 7 (3) ). Y también 13 ≡ 22 (3) .

Notar que el 1 (resto) no aparece en la notación.

Así como 13 ≡ 7 (3) , de la misma forma 13 ̸≡ 7 ( 5 ) , ya que 13 da resto 3 al dividirlo


por 5, y 7 da resto 2 al dividirlo por 5.

Es decir, que está mal decir el 7 y el 13 son congruentes. Y sólo eso. Se dice que son
congruentes módulo algo , o no son congruentes módulo algo.

Obviamente, estamos hablando siempre de división entera. Y en este curso


tomaremos a y b naturales, aunque la congruencia está definida sobre los enteros.

Recordar que no es una función (las funciones devuelven resultado único para un valor
de entrada) sino una relación. Ya que si se pide un número congruente a 13 módulo 3,
hay infinitas respuestas. Porque son infinitos los números que dan resto 1 al dividirlos
por 3.
.

Los infinitos números que dan resto 1 al dividirlos por 3 se pueden escribir como
números de la forma 3k+1.

También se habla de la tabla del 3 corrida en 1. (1,4,7,10,13,…..)

Ejemplos:
22 ≡ 15 (7)
50 ≡ 15 (7) (Notar que 50 – 15 es 35, que es 7k) (2da. Definición)
6 ≡ 9 (3)
800 ≡ 4 (4)
81 ≡ 27 (27)
800 ≡ 44 (4)
7 ≡ 7 (m)
30 ≡ 0 (6)
8 ≡ 5 (1)
X ≡ Y (1)

La sintaxis para decir que el resto de dividir 35 por 4 es 3 se nota: 35 (4) = 3


­
Propiedades
Es importante saber qué propiedades cumple cada relación que desarrollamos, ya que
de eso depende cuáles cosas se pueden hacer y cuáles no.
La congruencia cumple las propiedades reflexiva, simétrica y transitiva.

Reflexiva
a ≡a (m)

Simétrica
Si a ≡ b ( m ) entonces b ≡ a ( m )

Transitiva
Si a ≡ b ( m ) y b ≡ c ( m ) entonces a ≡ c ( m )
Si a ≡ b ( m ) y c ≡ b ( m ) entonces a ≡ c ( m )
Tablas de congruencia
Siendo a ≡ b ( n ) , se denomina tabla de congruencia [ a ] n , ó tabla de
equivalencia [ a ] n , a todos los números congruentes a a módulo n. (0 <= a < n)

[ 2 ] 5 = { 2,7,12,17,22,…. }

También se las denomina clase de congruencia [ a ] n , ó clase de equivalencia [ a ] n

[ 2 ]5 <> [ 3 ]5 <> [ 2 ]7

[ 3 ] 5 = { 3,8,13,18,…. } ( Son los números de la forma 5 k + 3 )

Hay 5 tablas de congruencia módulo 5.


Hay m tablas de congruencia módulo m.

Corolario: Para todo (0<= i,j <= n) , ( i<>j) , [ i ] n ∩ [ j ]n ={ }


Es decir, ningún número de una de las tablas de congruencia de un módulo está en
otra tabla del mismo módulo.
Operaciones
Suma : (e idénticamente la resta)

a ≡b (m)
g ≡h (m)
------------------------
a+g ≡ b+h ( m )

Producto:

a ≡b (m)
g ≡h (m)
------------------------
axg ≡ bxh ( m )
Más operaciones
Producto por una constante :

a ≡b (m)
n ≡n (m)
------------------------
axn ≡ bxn ( m )

Potencia :

a ≡b (m)
a ≡b (m)
------------------------
axa ≡ bxb ( m )
Cociente

1) Si a ≡ b ( m ) y existe un divisor d de m (d<>m) ,entonces:

a ≡ b ( m/d )

Ejemplo : 37 ≡ 25 ( 6 ) entonces 37 ≡ 25 ( 3 ) y 37 ≡ 25 ( 2 )

2) Si a ≡ b ( m ) y existe un divisor d de a, de b y de m , (d<>m) entonces

a/d ≡ b/d ( m/d )

Ejemplo : 36 ≡ 24 ( 6 ) entonces 12 ≡ 8 ( 2 ) ( Aquí d es 3)


Propiedad general de la congruencia

(a + b) (m) = ( a ( m ) + b ( m ) ) ( m)

Ejemplo:

(17 + 13) (5) = ( 17 (5) + 13 (5) ) (5) = ( 2 + 3 ) (5) = 5 (5) = 0

Es necesario comprender bien la diferencia entre decir 14(4) = 2 ( El resto de


dividir 14 por 4 es 2) y decir 22 ≡ 7 ( 5 ) ( 22 y 7 son congruentes módulo 5)
Ejercicios y ejemplos
1) Hallar el menor entero positivo R (>=1) tal que se cumpla N ≡ R ( M )
N M
a) 19 2
b) 131 5
c) 84 14
d) 141 17

2) Expresar las siguientes congruencias con los menores enteros positivos posibles:
e) 264 ≡ 1224 ( 48 )
f) 45 ≡ 150 ( 7 )
g) 280 ≡ 632 ( 88 )
h) 35 ≡ 79 ( 11 )

3) Se tiene un montón de fichas que no supera la cantidad de 100. Si se las agrupa en 7


grupos iguales, sobran 2. Si se las agrupa en 4 grupos iguales, sobra 1. Si se las agrupa en
5 grupos iguales, sobran 3. Cuántas fichas hay?
.

Una aplicación de congruencia:


Procedimiento para obtener el dígito verificador del cuil

Tanto la CUIT (Clave Única de Identificación Tributaria) como el CUIL (Código Único de
Identificación Laboral) constan de tres partes separados por guión:
el tipo,
el número y
El dígito verificador.
En el siguiente ejemplo se toma como CUIT el número ##-12345678-X, donde ## es el
tipo, 12345678 es el número de DNI o número de sociedad y X es el dígito verificador.
Tipos:
20, 23, 24 y 27 para Personas Físicas
30, 33 y 34 para Empresas.
El dígito verificador se calcula usando el algoritmo Módulo 11. Para obtenerlo, si no lo conocemos
o si queremos calcularlo:
Se procede a tomar el número de 10 dígitos compuesto por los 2 primeros más los 8 dígitos
siguientes, de derecha a izquierda, multiplicando cada dígito por los números que componen la
serie numérica 2,3,4,5,6,7; y sumando el resultado de estos productos, como se muestra a
continuación (si se ha aplicado la serie hasta el 7 y quedan dígitos por multiplicar, se comienza la
serie nuevamente):
.

En el ejemplo (con tipo 20)


8 × 2 = 16 7 × 3 = 21 6 × 4 = 24 5 × 5 = 25 4 × 6 = 24 3 × 7 = 21 2 × 2 = 4 1 × 3 = 3 0 × 4 = 0 2 × 5
= 10 entonces la suma de los productos es:
16+21+24+25+24+21+4+3+0+10 = SUMA_P (148)
Al número obtenido por la suma del producto de cada dígito por la serie ya mencionada, se le
aplica módulo 11, o sea, se divide por 11 y se determina el resto de la división.
En el ejemplo:
SUMA_MOD11 = SUMA_P módulo 11
Queda en SUMA_MOD11 el resto de dividir por 11 (5)
Ahora se hace 11 menos SUMA_MOD11 (6)
ONCEMENOS = 11 - SUMA_MOD11 (Si el resultado es 11, el dígito verificador será 0.)
Si el resultado es 10, no existe, es un error. Se debe cambiar el tipo a 23 o 33 y recalcular.

• Ejercicio: Calcular tu propio cuil-cuit

También podría gustarte