Recordemos, para resolver la ecuación \(aX\equiv b {\pmod {n}}\), \((aX \equiv b (n))\), cuando \(\mathbf{mcd}(a,n)=1\), utilizamos bien solución de Bézout, bien la función \(\varphi\) de Euler.
Ejemplo: Resolver la ecuación \[7X\equiv 3 {\pmod {103}}\]
(%i5)
ex:eucl_ext(7,103); if ex[1]<0 then inv:mod(ex[1],103) else inv:ex[1]$ sol:mod(inv*3,103)$ print(«Solución X=»,sol,«(103)»)$
Verifiquémoslo:
(%i6)
mod(7*sol,103);
Ejercicio: Resolver la ecuación de congruencias \(3X\equiv 16 \pmod{22}\).
(%i1)
mcd(a,b):=block([r,i], r:[mod(a,b)], r:append(r,mod(b,r)), id:2, for i:2 while r[i]>0 do ( r:append(r,[mod(r[i−1],r[i])]) ), r[length(r)−1] )$
(%i3)
fiEuler(n):=block([f,i,m], f:1, for i:2 thru n−1 do ( if(mcd(i,n)=1) then f:f+1 ), f )$ fi:fiEuler(22);
\[\operatorname{ }10\]
Sabemos que \(3^{10-1}\pmod{22}\) es el inverso de 3, luego
Hemos visto el uso de la función \(\varphi\) de Euler. El cálculo de esta función también se puede realizar si sabemos la descomposición de un número entero en sus factores primos:
Si \(n\in\mathbb{Z}\) es \({\displaystyle n=p_{1}^{k_{1}}\cdots p_{r}^{k_{r}}}\), entonces \[\varphi (n)=n\prod_{i=1}^r\left(1-\frac{1}{p_i}\right)\]
Ejemplo: Utilizar la fórmula anterior para construir un algoritmo que calcule \(\varphi(87)\)
(%i2)
fiEuler(n):=block([result,p,d], result:n, p:n, d:2, whiled·d<=pdo( ifmod(p,d)=0then( /* Aplicamos la fórmula: result = result * (1 – 1/d) */ result:result·(d−1)/d, /* Eliminamos todas las ocurrencias del factor d en p */ whilemod(p,d)=0do( p:p/d ) ), d:d+1 ), /* Si al final p > 1, lo que queda es el último factor primo */ ifp>1thenresult:result·(p−1)/p, return(result) )$ fiEuler(87);
\[\tag{%o2} 56\]
Sistemas de congruencias
Ejercicio: Resolver el sistema \[\begin{align*}
3X &\equiv 2\pmod{8} \\ 2X&\equiv 1\pmod{5} \end{align*}\]
Tenemos las ecuaciones de congruencia 3X\(\equiv\)2(mod 8) y 2X\(\equiv\)1(mod 5):
(%i4)
eq:[[3,2,8],[2,1,5]]$
Resolvamos la ecuaciones de congruencia de forma individual
Como vemos, k=-2 es el número que marca el cambio de signo en la variable x, y en este caso tambien en la y. Por tanto, la solución que buscamos es
(%i12)
sol(–2).[3,4];
Si la ecuación es de tres variables y tiene solución, el caso más sencillo es cuando tenemos dos coeficientes coprimos. En tal caso, la ecuación plantea una solución paramétrica cuyo parámetro es la variable del coeficiente no coprimo. Es decir, si \(m.c.d(a,b)=1\), planteamos la ecuación \[ax+by=n-c\lambda,\] donde designamos \(z=\lambda\), la resolvemos como ya conocemos.
Ejercicio: Resolver la ecuación \(5x+12y+3z=11\)
Utilicemos el algoritmo de Euclides para determinar el mcd
Como el mcd es 1 la ecuación tendrá solución. Ahora elegimos dos coeficientes coprimos: veíamos que el 5 y el 12 los son. Resolvemos, por tanto, la ecuación 5x+12y=11-3k, considerando z=k
Vemos que tiene solución, además los coficientes son coprimos; por tanto, podemos elegir cualquier para de coeficientes para buscar la solución. Sin embargo, en este caso nos piden una solución que cumpla min{x>0} y min{y>0}, entonces nos interesa que x dependa de un único parámetro. Es decir, resolvamos la ecuación -2y+9z=10-7k, considerando x=k:
Como la solución [3,1,-1] no es positiva, la respuesta a la pregunta sería la solución [1,3,1].
Ejercicio: Sea v\(:[x_s,y_s,z_s]\) la solución de la ecuación 5x-15y+22z=32, que cumple min{0<\(y_s\)<5} y max{0<\(z_s\)<10}, ¿cuál es el producto de v.[-2,3,4]
Observemos que si considerásemos como parámetro la variable z, tendríamos la ecuación 5x-15y=32-22z, y mcd(5,15)=5 no nos garantiza que 5|(32-22z) para cualquier z. Sin embargo, si ocurre en el caso de 22z=32(mod 5); es decir, 2z=2(mod 5), z=1+5k
El resultado anterior no implican que no existan soluciones con \(z\neq 1+5k\), de hecho hemos visto que [-9,1,5] o [13,1,-2] son soluciones. Sin embargo, no podemos llegar a dichas soluciones siguiendo el procedimiento de considerar la variable \(z\) como parámetro.
Por las indicaciones del ejercicios, supongamos que \(z\)=6<10, entonces se plantea la ecuación 5x-15y=-100
Verifiquémoslo: