- Congruencias en el conjunto de los números naturales
- Congruencias en el conjunto de los números enteros
- Resolución de congruencias de primer grado
- Resolución de congruencias de grado superior
- Sistemas de congruencias de primar grado
- Sistemas de congruencias de grado superior
- Bibliografía
§1. Congruencias en el conjunto de los números naturales.
Definición 1: Si y
se dice que
son congruentes módulo m si en la división entera por m dan el mismo resto y en este caso, se escribe
Con otras palabras si y solamente si,
La relación de congruencia es evidentemente una relación de equivalencia (reflexiva, simétrica y transitiva) puesto que la relación de igualdad lo es:
Propiedad reflexiva:
Propiedad simétrica:
Propiedad transitiva:
A partir de la definición de la congruencia de los números naturales es fácil demostrar las siguientes propiedades:
Propiedad 1:
En efecto,
Así, tiene ser cierto puesto que
implicaría que
es decir resultaría que
Por tanto la diferencia
existe y
implica que
es divisible por
Al revés, si
existe y es divisible por m entonces
y existe
tal que
Entonces de la división euclidea
, donde
resulta que
Esto quiere decir
es también el resto de la división euclidea de
por
y así
Propiedad 2:
En efecto, si entonces
divide la diferencia
y así según la propiedad 1
Si
entonces se puede considerar la congruencia equivalente:
de donde resulta que
divide a
Por tanto
Propiedad 3:
En efecto, si entonces de
resulta que
es múltiplo de
es decir existe
tal que
De aquí resulta que
es decir
es múltiplo de
y según la propiedad 1, tendremos la primera implicación. Si
tendremos también
de donde resulta la segunda implicación.
Propiedad 4:
En efecto, si entonces según la propiedad 1
divide a
y así
Si
entonces según la propiedad 1
divide la diferencia
y así
Propiedad 5:
En efecto, si según la propiedad1
divide la diferencia
y así
Por tanto,
divide la diferencia
y así, utilizando de nuevo la propiedad 1, resulta que
Si
hay que razonar de la misma manera a partir de la congruencia
Propiedad 6: Si es un divisor común de los números naturales
y
es un divisor de m, sean
Entonces
En efecto, se puede suponer que Puesto que
divide el número
, resulta que
divide a
Así, según la propiedad1
Al revés,
y
y así, el número
es un divisor de
Por tanto
será un divisor de
Propiedad 7:
En efecto, se puede suponer que y
Luego,
es un divisor común de las diferencias
y
de de donde resulta que
divide a
, y teniendo en cuenta que resulta que
Por inducción completa de aquí resulta que
Propiedad 8: Si y
entonces existe
tal que
En efecto, es un divisor de la diferencia
y así existe
tal que
La recíproca es evidente.
Propiedad 9:
En efecto, se puede suponer que Entonces, según la propiedad 8
y
y así resulta que:
, y así la propiedad queda demostrada.
Por inducción completa también en este caso resulta que
Propiedad 10: entontes
donde
es el mínimo común múltiplo de los números
En efecto, se puede suponer que y, según la propiedad 1,
es un múltiplo común de los números
Entonces, puesto que cualquier múltiplo común de ciertos números es múltiplo del mínimo común múltiplo de estos números,
será múltiplo de M, es decir
Observación 1: La relación de equivalencia divide al conjunto N en clases de equivalencia, dos a dos disjuntas y cada clase contiene los números naturales que dan el mismo resto en la división por m. La clase a la que pertenece el número
se notará con
Los elementos de las clases se llaman representantes de la clase. Normalmente se trabaja con el representante menor. El conjunto de todas las clases de N respecto al módulo m se nota con
y
Luego, las propiedades siguientes son evidentes:
es divisible por m.
Por ejemplo: Si y
entonces
,
y
Las operaciones en el conjunto de las clases se definen de la manera siguiente:
,
Estas operaciones no dependen de la elección de los representantes en las clases. En efecto, si
y
, donde
. Entonces
Obviamente, la conmutatividad y asociatividad de la suma y de la multiplicación de las clases se reduce a las mimas propiedades de la suma y de la multiplicación en N.
En la resta es siempre posible. En efecto, sean
En efecto, si entonces
Si entonces existe
tal que
e
Puesto que cualquiera que sea y
es un elemento opuesto bilateral de
,
es un grupo conmutativo. Luego, teniendo en cuenta que la propiedad distributiva de la multiplicación de las clases respecto a la suma de las clases también se reduce a la distributividad de la multiplicación respecto a la suma en N, y que
es un elemento neutro en la multiplicación de las clases, resulta que
es un anillo asociativo, conmutativo y con elemento neutro, que puede tener divisores de cero (si por ejemplo
pero
). Si m es un número primo entonces
no tiene divisores de cero y el elemento inverso de
debe existir puesto que los productos
son no nulos y dos a dos diferentes. Si dos de ellos fueran iguales resultaría la existencia de los divisores de cero: de
resultaría que
donde
y
). Así, alguno de los productos mencionados debe ser igual a
Si
y
entonces
Por tanto si m es un número primo,
es un cuerpo.
Teorema 0:
En efecto:
La segunda propiedad se demuestra de manera análoga.
Por definición, dos números naturales son primos entre sí (o son primos relativos) si su máximo común divisor es 1, es decir
Teorema 1: Los números son primos relativos, si y solamente sí,
es un elemento inversible del anillo
En efecto si son primos relativos resulta que existen
tal que
Entonces en tienen lugar las implicaciones siguientes:
Por tanto es inversible en
Al revés si
es inversible en
existe
tal que
Así el único divisor común de es el número 1 y por consiguiente
son primos relativos.
Teorema 2 (de Fermat): Si p es un número primo y entonces
En efecto, el teorema se cumple para Si
y teniendo en cuenta que
es un grupo, el elemento
es de índice 1(ver [8]) y si
es el elemento inverso de
entonces
Multiplicando ambas partes de la congruencia con
resulta que
Por definición, si y
es el indicador de Euler entonces
y para
es el número de aquellos números naturales
no nulos y menores que
para los cuales
son primos relativos.
Teorema 3 (de Euler): Si son números naturales y
son primos relativos, entonces
En efecto, sean los números naturales no nulos, menores que m y primos relativos con
Puesto que
son primos relativos,
, tendremos
, y así
Según el teorema 1, son inversibles en
y, como producto de elementos inversibles,
lo es también. Entonces,
, y
Finalmente, y el teorema queda demostrado.
Observación 2: El Teorema de Fermat es consecuencia del teorema de Euler puesto que si es un número primo, entonces
Teorema 4 (de Wilson): p es un número primo si, y solamente si,
Antes de demostrar el teorema hay que averiguar cuáles de las clases coinciden con su clase inversa, es decir cuáles cumplen las igualdades
Primero hay que observar que en no hay divisores de cero y por tanto
Luego, teniendo en cuenta que al multiplicar todos los elementos de un grupo finito multiplicativo, el producto será igual con el producto de aquellos elementos que coinciden con su inverso,
Por tanto
Al revés, si el número p que cumple la condición no fuera primo, debería tener una descomposición
donde
Al ser u un divisor de p, u tendría que ser un divisor común de
y
y así u debería dividir la diferencia
lo que es imposible, al ser u mayor que 1. La contradicción obtenida demuestra que p tiene que ser un número primo.
§2. Congruencias en el conjunto de los números enteros.
Si ,
y
se dice que a y b son congruentes módulo m, si m divide la diferencia
y se escribe
Con otras palabras,
La relación de congruencia es evidentemente una relación de equivalencia (reflexiva, simétrica y transitiva):
Propiedad reflexiva: ya que m divide la diferencia
Propiedad simétrica: puesto que si m divide a la diferencia
dividirá también la diferencia
Propiedad transitiva:
En efecto, si m divide a y
entonces m dividirá a
A partir de la definición de la congruencia de los números enteros es fácil demostrar las siguientes propiedades:
En efecto, m divide a las diferencias Por tanto
En efecto, m divide la diferencia al ser m un divisor de
Esta ultima propiedad es evidente puesto que u es divisor de m, m es divisor de y así u es divisor de
Si es el máximo común divisor de los números enteros
y d es un divisor de m,
entonces
En efecto, y
divide a
resulta que
y así
es decir
Por tanto,
divide a
Al revés de
resulta que
es un divisor de
y así
será un divisor
La relación de equivalencia divide al conjunto Z en clases de equivalencia, dos a dos disjuntas y cada clase contiene los números enteros tales que la diferencia de dos cualesquiera de ellos sea un múltiplo de m. La clase a la que pertenece el número
se notará con
Los elementos de las clases se llaman representantes de la clase. Normalmente se trabaja con el representante mayor o igual a cero. El conjunto de todas las clases de Z respecto al módulo m se nota con
y
Luego, las propiedades siguientes son evidentes:
Por ejemplo: Si y
entonces
,
y
Las operaciones en el conjunto de las clases se definen de la manera siguiente:
,
.
Estas operaciones no dependen de la elección de los representantes en las clases. En efecto, si
Entonces,
Teorema 5:
En efecto:
Obviamente la conmutatividad y asociatividad de la suma y de la multiplicación de las clases se reduce a las mimas propiedades de la suma y la multiplicación en Z.
Puesto que cualquiera que sea y
es un elemento opuesto bilateral de
,
es un grupo conmutativo. Luego, teniendo en cuenta que la propiedad distributiva de la multiplicación de las clases respecto a la suma de las clases también se reduce a la distributividad de la multiplicación respecto a la suma en Z, y que
es un elemento neutro en la multiplicación de las clases, resulta que
es un anillo asociativo, conmutativo y con elemento neutro, que puede tener divisores de cero (si por ejemplo
pero
Si
es un número primo entonces
no tiene divisores de cero y el elemento inverso de
debe existir puesto que los productos
son no nulos y dos a dos diferentes (Si dos de ellos fueran iguales resultaría la existencia de los divisores de cero: de
resultaría que
donde
y
). Así, alguno de los productos mencionados debe ser igual a
Si
y
entonces
Por tanto si m es un número primo,
es un cuerpo.
Definición 2: Una congruencia de grado n tiene la forma
(1)
, donde es una función polinomio con coeficientes enteros,
es un número natural mayor que 1 y
no es un múltiplo de
Resolver la congruencia significa hallar todos los números enteros para los cuales la congruencia es verdadera.
Una congruencia de primer grado tiene la forma:
(2)
, donde no es múltiplo de
§3. Resolución de congruencias de primer grado.
Teorema 6: Si el máximo común divisor de divide a
la congruencia (2) tiene solución. En efecto, la condición es necesaria puesto que si
es una solución
(3)
Teniendo en cuenta que y
de (3) resulta que
, es decir d tiene que ser un divisor La condición es también suficiente, puesto que si el máximo común divisor de
divide a
entonces (según la propiedad 3)
, donde son primos relativos. Entonces, según el teorema de Euler
donde
Así,
será una solución de la congruencia
y por tanto, también de la congruencia
Si es una solución de la congruencia
y
es una solución cualquiera entonces la solución general de esta congruencia será:
(3)
En efecto,
En el caso y las soluciones obtenidas son todas las soluciones de la congruencia (2). Si
teniendo en cuenta que las soluciones correspondientes que se obtienen para
son incongruentes respecto al módulo
la solución general de la congruencia (2) será la siguiente:
(4)
Ejemplo 1: Resolver la congruencia:
Puesto 2 es el máximo común divisor de 4 y 6 y 2 no divide a 3, la congruencia no tiene solución. Se llegaría a la misma conclusión por el método directo, es decir averiguando que ninguno de los números 1,2,3,4,5 es solución de la congruencia.
Ejemplo 2: Resolver la congruencia:
Puesto que 4 y 11 son primos relativos, la congruencia tiene solución. Calculando los productos y el resto de la división de cada producto en la división por 11 resulta que
Por tanto, la solución de la congruencia es
A continuación, el método anterior se llamará el método directo.
Observando que 11 es un número primo, la solución se podría obtener también utilizando el teorema de Fermat:
El teorema de Wilson sirve también para resolver la congruencia anterior. Teniendo en cuenta que según el teorema de Wilson
, resultan las equivalencias siguientes:
Ejemplo 3: Resolver la congruencia
Utilizando el método directo, se observa quePor consiguiente, la solución de la congruencia es
Puesto que 12 no es un número primo, el teorema de Fermat no es utilizable en este caso. Sin embargo el teorema de Euler es aplicable.
Teniendo en cuenta que ( entre los números 1,2,3,4,5,6,7,8,9,10,11 hay cuatro números que son primos con 12), resulta que
Por consiguiente,
Ejemplo 4: Resolver la congruencia:
(5)
(6)
Por el método directo se obtiene que Por tanto la solución general de la congruencia (6) es
Las soluciones 5 y 12 son incongruentes respecto al módulo 14 y así la solución general de la congruencia (5) se escribirá de la manera siguiente:
Si los númerosno superan a
los cálculos anteriores se podrían efectuar con los códigos siguientes (que corresponden al método directo, al método de Euler ó al método de Simpson, respectivamente, y el usuario debe decidir qué método es posible y con qué método quiere trabajar):
Public Function MetodoDirecto(ByVal a As Long, ByVal b As Long, ByVal m As Long) As String
Dim s() As Long, ax As Long, bx As Long, i As Long, k As Long
Dim x As Long, mcd As Long, mx As Long, rc As String, rs As String
If m < 1 Then
MetodoDirecto = " El módulo tiene que ser un entero mayor que 1"
Exit Function
End If
rc = Chr$(13) + Chr$(10): mcd = MaxComDiv2(a, m)
x = b Mod mcd
If x = 0 Then
If mcd = 1 Then
ax = a: bx = b: mx = m
Else
ax = a / mcd: bx = b / mcd: mx = m / mcd
End If
ax = ax Mod mx
bx = bx Mod mx
For i = 1 To mx – 1
x = (ax * i – bx) Mod mx
If x = 0 Then k = i: Exit For
Next i
ReDim s(mcd)
s(1) = k
For i = 2 To mcd: s(i) = s(i – 1) + mx: Next i
For i = 1 To mcd
rs = rs + rc + "x(" + Str$(i) + ") = " + Str$(s(i)) + " + k*" + Str$(m)
Next i
Else
rs = "No hay soluciones"
End If
MetodoDirecto = rs
End Function
Public Function MetodoEuler(ByVal a As Long, ByVal b As Long, ByVal m As Long) As String
Dim s() As Long, ax As Long, bx As Long, cx As Long, rc As String
Dim x As Long, mcd As Long, mx As Long, em As Long, rs As String
If m < 1 Then
MetodoEuler = " El módulo tiene que ser un entero mayor que 1"
Exit Function
End If
rc = Chr$(13) + Chr$(10): mcd = MaxComDiv2(a, m)
x = b Mod mcd
If x = 0 Then
If mcd = 1 Then
ax = a: bx = b: mx = m
Else
ax = a / mcd: bx = b / mcd: mx = m / mcd
End If
ax = ax Mod mx
bx = bx Mod mx
For i = 2 To Sqr(m)
x = m Mod i
If x = 0 Then Exit For
Next i
If i > Sqr(m) Then em = m – 1 Else em = Euler(mx)
x = bx
For i = 1 To em – 1
x = x * ax
x = x Mod mx
Next i
ReDim s(mcd)
s(1) = x
For i = 2 To mcd: s(i) = s(i – 1) + mx: Next i
For i = 1 To mcd
rs = rs + rc + "x(" + Str$(i) + ") = " + Str$(s(i)) + " + k*" + Str$(m)
Next i
Else
rs = "No hay soluciones"
End If
MetodoEuler = rs
End Function
Public Function MetodoSimpson(ByVal a As Long, ByVal b As Long, ByVal m As Long) As String
Dim i As Integer, s() As Long, rc As String, rs As String
Dim x As Long, ax As Long, bx As Long
If m < 1 Then
MetodoSimpson = " El módulo tiene que ser un entero mayor que 1."
Exit Function
End If
ax = a: bx = b
rc = Chr$(13) + Chr$(10)
mcd = MaxComDiv2(ax, m)
x = bx Mod mcd
If x <> 0 Then
MetodoSimpson = "La congruencia no tiene soluciones."
Exit Function
End If
If ax < 0 Then ax = -ax: bx = -bx
For i = 2 To Sqr(m)
x = m Mod i
If x = 0 Then
MetodoSimpson = "El módulo no es primo, el método de Simpson no es utilizable"
Exit Function
End If
Next i
If m < ax Then
MetodoSimpson = "m es primo pero p < Abs(a), el método de Simpson no es aplicable"
Exit Function
End If
ax = ax Mod m
bx = bx Mod m
x = bx
For i = 2 To m – 1
If i <> Abs(ax) Then
x = i * x
x = x Mod m
End If
Next i
x = -x
rs = "x = " + Str$(x) + " + k*" + Str$(m)
MetodoSimpson = rs
End Function
Public Function MaxComDiv2(ByVal a As Long, ByVal b As Long) As Long
Dim ax As Long, bx As Long, x As Long, qx As Long, rx As Long
ax = Abs(a): bx = Abs(b)
If ax < bx Then
x = ax: ax = bx: bx = x
End If
Do
rx = ax Mod bx
If rx = 0 Then Exit Do
ax = bx: bx = rx
Loop
MaxComDiv2 = bx
End Function
Public Function Euler(ByVal m As Long) As Long
Dim i As Integer, j As Integer, mcd As Integer
For i = 1 To m – 1
mcd = MaxComDiv2(i, m)
If mcd = 1 Then j = j + 1
Next i
Euler = j
End Function
Ejemplo 5: Al resolver la congruenciapor el método directo o de Euler, se obtienen las soluciones siguientes
donde
Ejemplo 6: Al resolver la congruencia por el método de Simpson, se obtiene la solución:
Ejemplo 7: La congruencia no tiene soluciones puesto que el máximo común divisor de los números
es 4 y 4 no divide el número
La Cuando los número enteros no tienen más de 8 dígitos (las variables son de tipo Long), estos programas funcionan bien y son más rápidos cuándo el módulo es menor.
Public Function CongruenciasD(ByVal a As String, ByVal b As String, ByVal m As String) As String
Dim s() As String, ax As String, bx As String, i As String, j As String, k As String
Dim mcd As String, mx As String, n As Integer, rt() As String, rs() As String
Dim x(2) As String, rr As String, dif As String, rc As String, res As String
rc = Chr$(13) + Chr$(10): n = 7
x(1) = a: x(2) = m: mcd = MaxComDiv(x(), n)
x(1) = b: x(2) = mcd: rt() = DivisionEuclidea(x(), n)
If rr(2) ="-0" then rr(2) = "0"
If rr(2) = "0" Then
If mcd = "1" Then
ax = a: bx = b: mx = m
Else
x(2) = mcd
x(1) = a: rt() = DivisionEuclidea(x(), n): ax = rt(1)
x(1) = b: rt() = DivisionEuclidea(x(), n): bx = rt(1)
x(1) = m: rt() = DivisionEuclidea(x(), n): mx = rt(1)
End If
If mx = "1" Then
If m = "1" Then
CongruenciasD = "¡El módulo tiedne que ser mayor que 1!"
Else
CongruenciasD = "Cualquier número natural es solución."
End If
Exit Function
End If
x(2) = mx
x(1) = ax: rt() = DivisionEuclidea(x(), n): ax = rt(2)
x(1) = bx: rt() = DivisionEuclidea(x(), n)
If rr(2) ="-0" then rr(2) = "0"
bx = rt(2)
i = "1"
Do
x(1) = ax: x(2) = i: x(1) = Multiplicar(x(), n)
x(2) = bx: dif = Restar(x(), n)
x(1) = dif: x(2) = mx: rt() = DivisionEuclidea(x(), n)
If rr(2) ="-0" then rr(2) = "0"
If rt(2) = "0" Then k = i: Exit Do
x(1) = i: x(2) = "1"
i = Sumar(x(), n)
Loop
ReDim s(mcd), rs(mcd)
s(1) = k: i = "1"
If mcd <> "1" Then
Do
x(1) = i: x(2) = "1": j = Sumar(x(), n)
x(1) = s(i): x(2) = mx: s(j) = Sumar(x(), n): i = j
Loop Until i = mcd
End If
i = "0": res = ""
Do
x(1) = i: x(2) = "1": j = Sumar(x(), n)
rs(j) = rs(j) + rc + "x(" + j + ") = " + s(j) + " + k*" + m
res = res + rs(j) + rc: i = j
Loop Until i = mcd
Else
res = "No hay soluciones"
End If
CongruenciasD = res
End Function
Public Function CongruenciasE(ByVal a As String, ByVal b As String, ByVal m As String) As String
Dim s() As String, ax As String, bx As String, cx As String, n As Integer, pr As String
Dim xx As String, mcd As String, mx As String, em As String, x(2) As String, rt() As String
Dim res As String, fi As Integer, fm As Integer, rs() As String, mcd2 As String, j As String
If m = "1" Then
CongruenciasE = "¡El módulo tiedne que ser mayor que 1!"
Exit Function
End If
n = 7: x(1) = a: x(2) = m
mcd = MaxComDiv(x(), n)
x(1) = b: x(2) = mcd
rt() = DivisionEuclidea(x(), n)
If rr(2) ="-0" then rr(2) = "0"
xx = rt(2)
If xx = "0" Then
If mcd = 1 Then
ax = a: bx = b: mx = m
Else
'ax = a / mcd: bx = b / mcd: mx = m / mcd
x(2) = mcd
x(1) = a: rt() = DivisionEuclidea(x(), n): ax = rt(1)
x(1) = b: rt() = DivisionEuclidea(x(), n): bx = rt(1)
x(1) = m: rt() = DivisionEuclidea(x(), n): mx = rt(1)
End If
If mx = "1" Then
CongruenciasE = "Cualquier número natural es solución."
Exit Function
End If
fm = Val(Right$(mx, 1)) ' última cifra de mx
If fm = 0 Mod 2 Then fm = 0
x(1) = ax: x(2) = mx
rt() = DivisionEuclidea(x(), n): ax = rt(2)
x(1) = bx: x(2) = mx:rt() = DivisionEuclidea(x(), n)
If rr(2) ="-0" then rr(2) = "0"
bx = rt(2)
'Establecer el valor de FunciónEuler(m)-1.
i = "1": pr = "0"
Do
x(1) = i: x(2) = "1": i = Sumar(x(), n)
If i = mx Then Exit Do
x(1) = i: x(2) = mx
fi = Val(Right$(i, 1))
If fi = 0 Mod 2 Then fi = 0
If fi <> 0 Or fm <> 0 Then
' cuando i y mx no son pares los dos.
mcd2 = MaxComDiv(x(), n)
If mcd2 = "1" Then
x(1) = pr: x(2) = "1": pr = Sumar(x(), n)
End If
End If
Loop
xx = bx: i = "0"
Do
If i = pr Then Exit Do
x(1) = i: x(2) = "1": i = Sumar(x(), n)
x(1) = xx: x(2) = ax: xx = Multiplicar(x(), n)
x(1) = xx: x(2) = mx: rt() = DivisionEuclidea(x(), n)
Página siguiente |