Álgebra y matemática discreta - 2012 sesión de prácticas 2

Post on 16-Oct-2021

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Álgebra y Matemática Discreta - 2012

Sesión de Prácticas 2

Leandro Marín

Dpto. de Matemática Aplicada

Facultad de Informática

2012

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

1 Máximo Común Divisor

2 Aritmética Modular

3 Polinomios

4 Cuerpos

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Definición

El máximo común divisor de a y b es el mayor de los divisorescomunes de a y b.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Definición

El máximo común 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 inglés (greatest commondivisor).

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Definición

El máximo común 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 inglés (greatest commondivisor).

Por ejemplo gcd(2352,4312)=392

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Tabla del Máximo Común Divisor

Aunque podemos usar el comando directamente, vamos a vercómo se calcularía la tabla que hacemos en clase.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Tabla del Máximo Común Divisor

Aunque podemos usar el comando directamente, vamos a vercómo 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 serán 0 y 1 (como siempre).

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Tabla del Máximo Común Divisor

Aunque podemos usar el comando directamente, vamos a vercómo 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 serán 0 y 1 (como siempre).

En sage es posible hacer la asignación en bloque:

a,b,v,t = 156 ,441 ,0,1

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Tabla del Máximo Común Divisor (II)

El cálculo se tiene que hacer mientras que b sea distinto de 0.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Tabla del Máximo Común Divisor (II)

El cálculo 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.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Tabla del Máximo Común Divisor (II)

El cálculo 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,r-t*q

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Tabla del Máximo Común 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 última fila, asíque ponemos los mismos que en la fila anterior. Las únicascolumnas importantes al final son la de a que nos indica el máximocomún divisor y la de v que nos indica el coeficiente del b original.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

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 máximo común divisor es 3 y que3 = 156 · u + 441 · 23. Para calcular el valor de u despejamos:

u =3 − 441 · 23

156= −65

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

xgcd

El máximo común divisor extendido se puede calcular tambiéncon un comando sage, es xgcd(a,b).

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

xgcd

El máximo común divisor extendido se puede calcular tambiéncon un comando sage, es xgcd(a,b).

Si ponemos xgcd(156,441) lo que obtenemos es (3,−65, 23) .

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

xgcd

El máximo común divisor extendido se puede calcular tambiéncon un comando sage, es xgcd(a,b).

Si ponemos xgcd(156,441) lo que obtenemos es (3,−65, 23) .

Estos valores son respectivamente el máximo común divisor ylos coeficientes de 156 y 441.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

xgcd

El máximo común divisor extendido se puede calcular tambiéncon un comando sage, es xgcd(a,b).

Si ponemos xgcd(156,441) lo que obtenemos es (3,−65, 23) .

Estos valores son respectivamente el máximo común divisor ylos coeficientes de 156 y 441.

Son los mismos que habíamos calculado nosotros.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

El Anillo Zmod(n)

Dado un número entero n ≥ 1 podemos definir el anillo derestos modulares Zn con el comando Zmod(n)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

El Anillo Zmod(n)

Dado un número entero n ≥ 1 podemos definir el anillo derestos modulares Zn con el comando Zmod(n)

Pongamos por ejemplo:

R = Zmod(6)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

El Anillo Zmod(n)

Dado un número 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 dirá

Ring of integers modulo 6

es decir, anillo de enteros módulo 6.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

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

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

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 escribirá 0 puesto que las operaciones están en Z6.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

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 escribirá 0 puesto que las operaciones están en Z6.

Si ponemos

a-b

y pulsamos enter, nos escribirá 5 puesto que3 − 4 = −1 ≡ 5(6).

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Operaciones Modulares

Si operamos un número de Zn con un elemento de Z, elresultado lo considerará en Zn

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Operaciones Modulares

Si operamos un número de Zn con un elemento de Z, elresultado lo considerará en Zn

Como a valía 3 ∈ Z6, si ponemos 7 ∗ a nos responderá 3porque 21 ≡ 3(6).

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Operaciones Modulares

Si operamos un número de Zn con un elemento de Z, elresultado lo considerará en Zn

Como a valía 3 ∈ Z6, si ponemos 7 ∗ a nos responderá 3porque 21 ≡ 3(6).

También podemos hacer exponenciaciones a18 = 3

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Inversos

Si tratamos de calcular un inverso que no existe nos dará 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.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Inversos

Tomemos ahora otro anillo modular

S = Zmod(256)

c = S(7)

print c^-1

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Inversos

Tomemos ahora otro anillo modular

S = Zmod(256)

c = S(7)

print c^-1

Nos devolverá 183, que es el inverso de 7 módulo 256.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Inversos

Tomemos ahora otro anillo modular

S = Zmod(256)

c = S(7)

print c^-1

Nos devolverá 183, que es el inverso de 7 módulo 256.

Podemos comprobarlo poniendo 183*c que nos dará 1.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

La Función ϕ de Euler

El número de elementos invertibles en Zn se llama ϕ(n) y secalcula con euler_phi(n).

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

La Función ϕ de Euler

El número de elementos invertibles en Zn se llama ϕ(n) y secalcula con euler_phi(n).

Esta función tiene la propiedad de que cualquier elementoinvertible elevado a ese número es 1.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

La Función ϕ de Euler

El número de elementos invertibles en Zn se llama ϕ(n) y secalcula con euler_phi(n).

Esta función tiene la propiedad de que cualquier elementoinvertible elevado a ese número es 1.

Pongamos por ejemplo:

S = Zmod(256)

c = S(7)

print c^euler_phi(256)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

La Función ϕ de Euler

El número de elementos invertibles en Zn se llama ϕ(n) y secalcula con euler_phi(n).

Esta función tiene la propiedad de que cualquier elementoinvertible elevado a ese número es 1.

Pongamos por ejemplo:

S = Zmod(256)

c = S(7)

print c^euler_phi(256)

Nos devolverá 1.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

La Función ϕ de Euler

El número de elementos invertibles en Zn se llama ϕ(n) y secalcula con euler_phi(n).

Esta función tiene la propiedad de que cualquier elementoinvertible elevado a ese número es 1.

Pongamos por ejemplo:

S = Zmod(256)

c = S(7)

print c^euler_phi(256)

Nos devolverá 1.

En este caso la función vale 128.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Teorema Chino de los Restos

Supongamos que queremos encontrar cuales son los posiblesvalores de x tales que

x ≡ 3(5) x ≡ 2(7)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

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 solución por el Teorema Chino de losRestos, que nos dice que la solución es única módulo elmínimo común múltiplo de 5 y 7, en este caso 35.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

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 solución por el Teorema Chino de losRestos, que nos dice que la solución es única módulo elmínimo común múltiplo de 5 y 7, en este caso 35.

El cálculo con sage se hace con el comando

crt([3,2],[5,7])

En este caso el valor es 23 módulo 35.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Polinomios con Coeficientes Modulares

Podemos definir también polinomios con coeficientesmodulares. Por ejemplo:

R = PolynomialRing(Zmod(7),’x’)

p = R(x^3-1)

factor(p)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Polinomios con Coeficientes Modulares

Podemos definir también polinomios con coeficientesmodulares. Por ejemplo:

R = PolynomialRing(Zmod(7),’x’)

p = R(x^3-1)

factor(p)

Obtendremos

(x + 3) * (x + 5) * (x + 6)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Polinomios con Coeficientes Modulares

Podemos definir también 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.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Factorización

Como sucedía con polinomios sobre otros cuerpos, lafactorización depende del cuerpo en el que se tomen loscoeficientes.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Factorización

Como sucedía con polinomios sobre otros cuerpos, lafactorización 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)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Factorización

Como sucedía con polinomios sobre otros cuerpos, lafactorización 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 factorización:

(x + 4) * (x^2 + x + 1)

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Dominios Euclídeos

Casi todo lo que hemos dicho para Z en relación con ladivisibilidad, es cierto también para los polinomios concoeficientes en R, Q, C o un incluso Zp con p primo.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Dominios Euclídeos

Casi todo lo que hemos dicho para Z en relación con ladivisibilidad, es cierto también para los polinomios concoeficientes en R, Q, C o un incluso Zp con p primo.

En particular podemos calcular el máximo común divisor y elmáximo común divisor extendido con el mismo algoritmo quelo hacíamos en Z.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Dominios Euclídeos

Casi todo lo que hemos dicho para Z en relación con ladivisibilidad, es cierto también para los polinomios concoeficientes en R, Q, C o un incluso Zp con p primo.

En particular podemos calcular el máximo común divisor y elmáximo común divisor extendido con el mismo algoritmo quelo hacíamos en Z.

También es cierto que todo polinomio se descompone deforma única como producto de polinomios irreducibles. Cualessean esos factores depende de donde estén los coeficientes.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Dominios Euclídeos

Casi todo lo que hemos dicho para Z en relación con ladivisibilidad, es cierto también para los polinomios concoeficientes en R, Q, C o un incluso Zp con p primo.

En particular podemos calcular el máximo común divisor y elmáximo común divisor extendido con el mismo algoritmo quelo hacíamos en Z.

También es cierto que todo polinomio se descompone deforma única como producto de polinomios irreducibles. Cualessean esos factores depende de donde estén los coeficientes.

En realidad, siempre que tengamos una división con resto, lopodemos hacer. Los conjuntos donde tenemos una división deesta forma se llaman dominios euclídeos.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Definción

Un cuerpo es un conjunto K con dos operaciones + y · y doselementos destacados distiontos 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.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Definción

Un cuerpo es un conjunto K con dos operaciones + y · y doselementos destacados distiontos 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.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Definción

Un cuerpo es un conjunto K con dos operaciones + y · y doselementos destacados distiontos 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.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Ejempos de Cuerpos

Son cuerpos por ejemplo Q, R y C. Estos son cuerposinfinitos.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Ejempos de Cuerpos

Son cuerpos por ejemplo Q, R y C. Estos son cuerposinfinitos.

También son cuerpos los conjuntos Zp cuando p es primo.Estos son cuerpos finitos.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Ejempos de Cuerpos

Son cuerpos por ejemplo Q, R y C. Estos son cuerposinfinitos.

También son cuerpos los conjuntos Zp cuando p es primo.Estos son cuerpos finitos.

Existen otros cuerpos finitos más complejos con un número deelementos pα.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Ejempos de Cuerpos

Son cuerpos por ejemplo Q, R y C. Estos son cuerposinfinitos.

También son cuerpos los conjuntos Zp cuando p es primo.Estos son cuerpos finitos.

Existen otros cuerpos finitos más complejos con un número deelementos pα.

Los cuerpos finitos se suelen llamar también cuerpos de Galois.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Cuerpo de 8 elementos

Igual que los cuerpos Zp se hacían con la relación decongruencia módulo p, los cuerpos de Galois se hacen conpolinomios y congruencias módulo un polinomio irreducible.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Cuerpo de 8 elementos

Igual que los cuerpos Zp se hacían con la relación decongruencia módulo p, los cuerpos de Galois se hacen conpolinomios y congruencias módulo un polinomio irreducible.

El programa sage puede manejarlos sin ninguna dificultad.

Índice Máximo Común Divisor Aritmética Modular Polinomios Cuerpos

Cuerpo de 8 elementos

Igual que los cuerpos Zp se hacían con la relación decongruencia módulo p, los cuerpos de Galois se hacen conpolinomios y congruencias módulo un polinomio irreducible.

El programa sage puede manejarlos sin ninguna dificultad.

Para definir el cuerpo de 8 elementos, tenemos que decirsimplemente cómo queremos llamar a la variable de lospolinomios que aparecen.

K = GF(8,’a’)

Índice Máximo Común Divisor Aritmética Modular Polinomios 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

Índice Máximo Común Divisor Aritmética Modular Polinomios 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

Índice Máximo Común Divisor Aritmética Modular Polinomios 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.

top related