Álgebra y Matemática Discreta Sesión de Prácticas 2
Transcript of Álgebra y Matemática Discreta Sesión de Prácticas 2
Algebra y Matematica Discreta Sesion de Practicas 2
Algebra y Matematica DiscretaSesion de Practicas 2
(c) 2013 Leandro Marın, Francisco J. Vera, Gema M. Dıaz
23 Sep 2013 - 29 Sep 2013
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Maximo Comun Divisor
Definicion
El maximo comun divisor de a y b es el mayor de los divisorescomunes de a y b.
Se puede calcular directamente en sage con el comandogcd(a,b) que son las siglas en ingles (greatest commondivisor).
Por ejemplo gcd(2352,4312)=392
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Maximo Comun Divisor
Tabla del Maximo Comun Divisor
Aunque podemos usar el comando directamente, vamos a vercomo se calcularıa la tabla que hacemos en clase.
Para generar la tabla vamos a empezar dando los valoresiniciales a = 156 y b = 441. Los valores de v y t
respectivamente seran 0 y 1 (como siempre).
En sage es posible hacer la asignacion en bloque:
a,b,v,t = 156 ,441 ,0,1
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Maximo Comun Divisor
Tabla del Maximo Comun Divisor (II)
El calculo se tiene que hacer mientras que b sea distinto de 0.
Eso se hace con una estructura
while condicion :
y luego un bloque similar al del caso for.
En cada paso del ciclo tenemos que calcular r ,q y recalculara, b, v , t, concretamente
q,r = a //b,a%b
a,b,v,t = b,r,t,v-t*q
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Maximo Comun Divisor
Tabla del Maximo Comun Divisor (III)
El programa completo quedarıa del siguiente modo:
a,b,v,t = 156 ,441 ,0,1
while b!=0:
q,r = a //b,a%b
print a,b,r,v,t,q
a,b,v,t = b,r,t,v-t*q
print a,b,r,v,t,q
Los valores de q y r no los podemos calcular en la ultima fila, asıque ponemos los mismos que en la fila anterior. Las unicascolumnas importantes al final son la de a que nos indica el maximocomun divisor y la de v que nos indica el coeficiente del b original.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Maximo Comun Divisor
Obtenemos los siguientes valores
156 441 156 0 1 0
441 156 129 1 0 2
156 129 27 0 1 1
129 27 21 1 -1 4
27 21 6 -1 5 1
21 6 3 5 -6 3
6 3 0 -6 23 2
3 0 0 23 -52 2
Lo que significa que el maximo comun divisor es 3 y que3 = 156 · u + 441 · 23. Para calcular el valor de u despejamos:
u =3− 441 · 23
156= −65
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Maximo Comun Divisor
xgcd
El maximo comun divisor extendido se puede calcular tambiencon un comando sage, es xgcd(a,b).
Si ponemos xgcd(156,441) lo que obtenemos es(3,−65, 23) .
Estos valores son respectivamente el maximo comun divisor ylos coeficientes de 156 y 441.
Son los mismos que habıamos calculado nosotros.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Aritmetica Modular
El Anillo Zmod(n)
Dado un numero entero n ≥ 1 podemos definir el anillo derestos modulares Zn con el comando Zmod(n)
Pongamos por ejemplo:
R = Zmod(6)
Si entonces escribimos R y pulsamos enter nos dira
Ring of integers modulo 6
es decir, anillo de enteros modulo 6.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Aritmetica Modular
El Anillo Zmod(6)
A partir de este momento, podemos forzar a los elementos aestar en este anillo, pongamos por ejempo
R = Zmod(6)
a = R(3)
b = R(4)
a*b
Nos escribira 0 puesto que las operaciones estan en Z6.
Si ponemos
a-b
y pulsamos enter, nos escribira 5 puesto que3− 4 = −1 ≡ 5(6).
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Aritmetica Modular
Operaciones Modulares
Si operamos un numero de Zn con un elemento de Z, elresultado lo considerara en Zn
Como a valıa 3 ∈ Z6, si ponemos 7 ∗ a nos respondera 3porque 21 ≡ 3(6).
Tambien podemos hacer exponenciaciones a18 = 3
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Aritmetica Modular
Inversos
Si tratamos de calcular un inverso que no existe nos dara un error,ası si ponemos a^-1 obtenemos
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/leandro/AMD12/<ipython console> in <module>()
/usr/local/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/rings/finite_rings/integer_mod.so
/in sage.rings.finite_rings.integer_mod.IntegerMod_int.__pow__
/(sage/rings/finite_rings/integer_mod.c:20781)()
/usr/local/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/rings/finite_rings/integer_mod.so
/in sage.rings.finite_rings.integer_mod.IntegerMod_int.__invert__
/(sage/rings/finite_rings/integer_mod.c:20884)()
ZeroDivisionError: Inverse does not exist.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Aritmetica Modular
Inversos
Tomemos ahora otro anillo modular
S = Zmod(256)
c = S(7)
print c^-1
Nos devolvera 183, que es el inverso de 7 modulo 256.
Podemos comprobarlo poniendo 183*c que nos dara 1.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Aritmetica Modular
La Funcion ϕ de Euler
El numero de elementos invertibles en Zn se llama ϕ(n) y secalcula con euler_phi(n).
Esta funcion tiene la propiedad de que cualquier elementoinvertible elevado a ese numero es 1.
Pongamos por ejemplo:
S = Zmod(256)
c = S(7)
print c^euler_phi(256)
Nos devolvera 1.
En este caso la funcion vale 128.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Aritmetica Modular
Teorema Chino de los Restos
Supongamos que queremos encontrar cuales son los posiblesvalores de x tales que
x ≡ 3(5) x ≡ 2(7)
Estos sistemas tienen solucion por el Teorema Chino de losRestos, que nos dice que la solucion es unica modulo elmınimo comun multiplo de 5 y 7, en este caso 35.
El calculo con sage se hace con el comando
crt([3,2],[5,7])
En este caso el valor es 23 modulo 35.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Polinomios
Polinomios con Coeficientes Modulares
Podemos definir tambien polinomios con coeficientesmodulares. Por ejemplo:
R = PolynomialRing(Zmod(7),’x’)
p = R(x^3-1)
factor(p)
Obtendremos
(x + 3) * (x + 5) * (x + 6)
Porque considerando los coeficientes en este cuerpo, elpolinomio se factoriza completamente.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Polinomios
Factorizacion
Como sucedıa con polinomios sobre otros cuerpos, lafactorizacion depende del cuerpo en el que se tomen loscoeficientes.
Si ponemos el mismo polinomio, pero considerado en Z5
tenemos:
R = PolynomialRing(Zmod(5),’x’)
p = R(x^3-1)
factor(p)
Obtenemos otra factorizacion:
(x + 4) * (x^2 + x + 1)
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Polinomios
Dominios Euclıdeos
Casi todo lo que hemos dicho para Z en relacion con ladivisibilidad, es cierto tambien para los polinomios concoeficientes en R, Q, C o un incluso Zp con p primo.
En particular podemos calcular el maximo comun divisor y elmaximo comun divisor extendido con el mismo algoritmo quelo hacıamos en Z.
Tambien es cierto que todo polinomio se descompone deforma unica como producto de polinomios irreducibles. Cualessean esos factores depende de donde esten los coeficientes.
En realidad, siempre que tengamos una division con resto, lopodemos hacer. Los conjuntos donde tenemos una division deesta forma se llaman dominios euclıdeos.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Cuerpos
Definicion
Un cuerpo es un conjunto K con dos operaciones + y · y doselementos destacados distintos llamados 0 y 1 tales que:
a+ b = b + a, (a+ b) + c = a+ (b + c), a+ 0 = a y paratodo a existe −a tal que a+ (−a) = 0.
a · b = b · a, (a · b) · c = a · (b · c), a · 1 = a y para todo a 6= 0existe a−1 tal que a · a−1 = 1.
a · (b + c) = a · b + a · c .
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Cuerpos
Ejempos de Cuerpos
Son cuerpos por ejemplo Q, R y C. Estos son cuerposinfinitos.
Tambien son cuerpos los conjuntos Zp cuando p es primo.Estos son cuerpos finitos.
Existen otros cuerpos finitos mas complejos con un numero deelementos pα.
Los cuerpos finitos se suelen llamar tambien cuerpos de Galois.
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Cuerpos
Cuerpo de 8 elementos
Igual que los cuerpos Zp se hacıan con la relacion decongruencia modulo p, los cuerpos de Galois se hacen conpolinomios y congruencias modulo un polinomio irreducible.
El programa sage puede manejarlos sin ninguna dificultad.
Para definir el cuerpo de 8 elementos, tenemos que decirsimplemente como queremos llamar a la variable de lospolinomios que aparecen.
K = GF(8,’a’)
Algebra y Matematica Discreta Sesion de Practicas 2
Aritmetica
Cuerpos
Recorriendo un Cuerpo Finito
Podemos recorrer todos los elementos de un cuerpo finitocomo una lista. Si ponemos
K = GF(8,’a’)
for x in K:
print x
Obtendremos todos los elementos de este cuerpo:
0, a, a2, a+ 1, a2 + a, a2 + a+ 1, a2 + 1, 1
Podemos manejar variables con estos valores como las decualquier otro cuerpo.