lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

82
Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios Álgebra y Matemática Discreta - 2012 Sesión de Prácticas 1 Leandro Marín Dpto. de Matemática Aplicada Facultad de Informática 2012

Transcript of lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Page 1: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Álgebra y Matemática Discreta - 2012

Sesión de Prácticas 1

Leandro Marín

Dpto. de Matemática Aplicada

Facultad de Informática

2012

Page 2: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

1 Estructuras Algebraicas

2 Listas

3 Los Números Enteros

4 Polinomios

Page 3: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El Programa sage

El programa sage es un paquete matemático de software libreque dispone de muchas funcionalidades. Vamos a empezar lasprácticas con él.

Page 4: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El Programa sage

El programa sage es un paquete matemático de software libreque dispone de muchas funcionalidades. Vamos a empezar lasprácticas con él.

Se puede descargar libremente de la direcciónhttp://www.sagemath.org

Page 5: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El Programa sage

El programa sage es un paquete matemático de software libreque dispone de muchas funcionalidades. Vamos a empezar lasprácticas con él.

Se puede descargar libremente de la direcciónhttp://www.sagemath.org

Existen multitud de recursos en internet, desde cursos paraestudiantes preuniversitarios hasta programas a nivel deinvestigación.

Page 6: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

La Estructura como Variable

Tenemos una gran cantidad de estructuras algebraicasdefinidas dentro de sage que podemos utilizar.

Page 7: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

La Estructura como Variable

Tenemos una gran cantidad de estructuras algebraicasdefinidas dentro de sage que podemos utilizar.

Una de las más sencillas es el conjunto de los números enterosZ. En sage este conjunto se denota por ZZ.

Page 8: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

La Estructura como Variable

Tenemos una gran cantidad de estructuras algebraicasdefinidas dentro de sage que podemos utilizar.

Una de las más sencillas es el conjunto de los números enterosZ. En sage este conjunto se denota por ZZ.

Si escribimos

ZZ

el programa nos responderá Integer Ring, es decir anillo delos números enteros.

Page 9: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

La Estructura como Variable

Tenemos una gran cantidad de estructuras algebraicasdefinidas dentro de sage que podemos utilizar.

Una de las más sencillas es el conjunto de los números enterosZ. En sage este conjunto se denota por ZZ.

Si escribimos

ZZ

el programa nos responderá Integer Ring, es decir anillo delos números enteros.

ZZ es una variable más del sistema.

Page 10: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Operaciones con Enteros

Vamos a hacer algunas operaciones básicas en los númerosenteros. La suma, resta y multiplicación se realizan con lossímbolos habituales +, - y *.

Page 11: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Operaciones con Enteros

Vamos a hacer algunas operaciones básicas en los númerosenteros. La suma, resta y multiplicación se realizan con lossímbolos habituales +, - y *.

Si escribimos

a = 6*7*8*9

print a

Page 12: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Operaciones con Enteros

Vamos a hacer algunas operaciones básicas en los númerosenteros. La suma, resta y multiplicación se realizan con lossímbolos habituales +, - y *.

Si escribimos

a = 6*7*8*9

print a

obtendremos 3024.

Page 13: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

División

La división requiere un poco más de explicación, porquepodemos hacer la siguiente operación:

print a/16

Page 14: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

División

La división requiere un poco más de explicación, porquepodemos hacer la siguiente operación:

print a/16

y obtenemos 189 porque la división es exacta, pero si hacemos

print a/10

Page 15: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

División

La división requiere un poco más de explicación, porquepodemos hacer la siguiente operación:

print a/16

y obtenemos 189 porque la división es exacta, pero si hacemos

print a/10

obtenemos 15125

. En este caso la división no es exacta y nos hadejado la operación en forma fraccionaria.

Page 16: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Cociente y Resto

El realidad este operador en los números enteros no es comoen otros lenguajes, el cociente de la división.

Page 17: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Cociente y Resto

El realidad este operador en los números enteros no es comoen otros lenguajes, el cociente de la división.

Para obtener el cociente de la división tenemos que poner

print a // 10

con lo que obtenemos 302.

Page 18: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Cociente y Resto

El realidad este operador en los números enteros no es comoen otros lenguajes, el cociente de la división.

Para obtener el cociente de la división tenemos que poner

print a // 10

con lo que obtenemos 302.

El resto de la división se calcula utilizando el símbolo %.

Page 19: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El conjunto de los números racionales se denota QQ y el de losnúmeros reales RR.

Page 20: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El conjunto de los números racionales se denota QQ y el de losnúmeros reales RR.

El conjunto de los números reales RR utiliza representacionesdecimales finitas del número.

Page 21: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El conjunto de los números racionales se denota QQ y el de losnúmeros reales RR.

El conjunto de los números reales RR utiliza representacionesdecimales finitas del número.

Cuando tenemos un elemento en un conjunto y queremosllevarlo a otro, lo que hacemos es utilizar el nombre de laestructura, así por ejemplo

a = 1/3

b = RR(a)

print a

print b

nos dará los resultados 13

y 0.333333333333333.

Page 22: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

En realidad si escribimos

RR

nos dice Real Field with 53 bits of precision, esdecir, cuerpo de los números reales con 53 bits de precisión.

Page 23: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

En realidad si escribimos

RR

nos dice Real Field with 53 bits of precision, esdecir, cuerpo de los números reales con 53 bits de precisión.

Es una precisión suficientemente buena para la mayoría denuestras necesidades.

Page 24: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

En realidad si escribimos

RR

nos dice Real Field with 53 bits of precision, esdecir, cuerpo de los números reales con 53 bits de precisión.

Es una precisión suficientemente buena para la mayoría denuestras necesidades.

Si en alguna ocasión necesitamos ampliarla (o reducirla) esposible.

Page 25: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Si intentamos forzar a que un elemento esté dentro de unaestructura en la que no puede estar, obtenemos un error, porejemplo, si ponemos ZZ(2/3) lo que obtenemos es un error

---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

/home/leandro/docencia/AMD12/quickref/<ipython console> in <module>()

/usr/local/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/structure/parent.so

/in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:7886)()

/usr/local/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/rings/rational.so

/in sage.rings.rational.Q_to_Z._call_ (sage/rings/rational.c:23746)()

TypeError: no conversion of this rational to integer

Page 26: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas

Los objetos en sage se pueden agrupar en listas.

Page 27: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas

Los objetos en sage se pueden agrupar en listas.

Una lista no es mas que una estructura en la que tenemosunos objetos en posiciones concretas. Por ejemplo

milista = [1,2,3]

asigna a la variable milista la lista formada por los números1, 2 y 3.

Page 28: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas

Los objetos en sage se pueden agrupar en listas.

Una lista no es mas que una estructura en la que tenemosunos objetos en posiciones concretas. Por ejemplo

milista = [1,2,3]

asigna a la variable milista la lista formada por los números1, 2 y 3.

Los elementos están numerados desde 0, así milista[0 ]tendrá el valor 1, milista[1 ] tendrá el valor 2 ymilista[2 ] tendrá el valor 3.

Page 29: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas

Los objetos en sage se pueden agrupar en listas.

Una lista no es mas que una estructura en la que tenemosunos objetos en posiciones concretas. Por ejemplo

milista = [1,2,3]

asigna a la variable milista la lista formada por los números1, 2 y 3.

Los elementos están numerados desde 0, así milista[0 ]tendrá el valor 1, milista[1 ] tendrá el valor 2 ymilista[2 ] tendrá el valor 3.

Los valores milista[n ] se pueden usar como variablesordinarias y hacer cualquier operación sobre ellas.

Page 30: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Recorriendo Listas

La gran ventaja de tener los números en una lista, es quepodemos recorrer los elementos de la lista.

Page 31: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Recorriendo Listas

La gran ventaja de tener los números en una lista, es quepodemos recorrer los elementos de la lista.

Si ponemos

minuevalista = [1,4,7,-1]

for x in minuevalista:

print x*x

Page 32: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Recorriendo Listas

La gran ventaja de tener los números en una lista, es quepodemos recorrer los elementos de la lista.

Si ponemos

minuevalista = [1,4,7,-1]

for x in minuevalista:

print x*x

Nos escribirá los elementos 1,16,49 y 1.

Page 33: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

for,in,:,etc.

Hay varios puntos importantes en el código:

minuevalista = [1,4,7,-1]

for x in minuevalista:

print x*x

Page 34: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

for,in,:,etc.

Hay varios puntos importantes en el código:

minuevalista = [1,4,7,-1]

for x in minuevalista:

print x*x

Utilizamos for para recorrer la lista y decimos cómo queremosllamar a los elementos: los llamaremos x.

Page 35: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

for,in,:,etc.

Hay varios puntos importantes en el código:

minuevalista = [1,4,7,-1]

for x in minuevalista:

print x*x

Utilizamos for para recorrer la lista y decimos cómo queremosllamar a los elementos: los llamaremos x.

Por tanto x irá recorriendo cada uno de los valores de la lista.

Page 36: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

for,in,:,etc.

Hay varios puntos importantes en el código:

minuevalista = [1,4,7,-1]

for x in minuevalista:

print x*x

Utilizamos for para recorrer la lista y decimos cómo queremosllamar a los elementos: los llamaremos x.

Por tanto x irá recorriendo cada uno de los valores de la lista.

Después ponemos : y la siguiente línea tiene que estardesplazada a la derecha un número de espacios. Esedesplazamiento hace a sage reconocer que esas intruccionesestán en el bucle.

Page 37: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range

Las listas de números [ 0,1,2,3,...,n-1] se puedengenerar con el comando range(n)

Page 38: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range

Las listas de números [ 0,1,2,3,...,n-1] se puedengenerar con el comando range(n)

Si escribimos range(10) nos devolverá la lista[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Page 39: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range

Las listas de números [ 0,1,2,3,...,n-1] se puedengenerar con el comando range(n)

Si escribimos range(10) nos devolverá la lista[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Podemos usarlo directamente

for j in range(10):

print j

Page 40: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range

Las listas de números [ 0,1,2,3,...,n-1] se puedengenerar con el comando range(n)

Si escribimos range(10) nos devolverá la lista[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Podemos usarlo directamente

for j in range(10):

print j

Nos escribirá todos los números desde el 0 al 9.

Page 41: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range (II)

Si escribimos range(3,6) nos devolverá [ 3,4,5].

Page 42: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range (II)

Si escribimos range(3,6) nos devolverá [ 3,4,5].

Notemos que el número 6 no se alcanza, en range(a,b) elprimer valor de la lista será a y el último b − 1.

Page 43: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range (II)

Si escribimos range(3,6) nos devolverá [ 3,4,5].

Notemos que el número 6 no se alcanza, en range(a,b) elprimer valor de la lista será a y el último b − 1.

También podemos hacer listas que en cada paso sumen unacantidad distinta de 1, por ejemplo

range(7,12 ,2)

Page 44: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range (II)

Si escribimos range(3,6) nos devolverá [ 3,4,5].

Notemos que el número 6 no se alcanza, en range(a,b) elprimer valor de la lista será a y el último b − 1.

También podemos hacer listas que en cada paso sumen unacantidad distinta de 1, por ejemplo

range(7,12 ,2)

Nos escribirá [ 7,9,11].

Page 45: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El comando range (II)

Si escribimos range(3,6) nos devolverá [ 3,4,5].

Notemos que el número 6 no se alcanza, en range(a,b) elprimer valor de la lista será a y el último b − 1.

También podemos hacer listas que en cada paso sumen unacantidad distinta de 1, por ejemplo

range(7,12 ,2)

Nos escribirá [ 7,9,11].

También podemos is hacia abajo, por ejemplorange(10,0,-1)

Page 46: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Comandos para Listas

Hay muchos comandos que podemos usar sobre listas. Vamosa ver algunos:

Page 47: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Comandos para Listas

Hay muchos comandos que podemos usar sobre listas. Vamosa ver algunos:

Si milista es una variable que contiene una lista, entonces sulongitud es len(milista)

Page 48: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Comandos para Listas

Hay muchos comandos que podemos usar sobre listas. Vamosa ver algunos:

Si milista es una variable que contiene una lista, entonces sulongitud es len(milista)

Si queremos saber el número de veces que un valor aparece enuna lista, milista.count(x) nos dice el número de veces quex aparece en milista (que también puede ser 0)

Page 49: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Comandos para Listas

Hay muchos comandos que podemos usar sobre listas. Vamosa ver algunos:

Si milista es una variable que contiene una lista, entonces sulongitud es len(milista)

Si queremos saber el número de veces que un valor aparece enuna lista, milista.count(x) nos dice el número de veces quex aparece en milista (que también puede ser 0)

El comando sum(milista) nos dice cuanto suman todos loselementos de la lista y prod(milista) su producto.

Page 50: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Una Programación Elegante

Podemos crear listas como sigue:

c = [x^2 for x in range(5)]

Page 51: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Una Programación Elegante

Podemos crear listas como sigue:

c = [x^2 for x in range(5)]

Esto nos proporciona la lista [ 0, 1, 4, 9, 16] y la asignaa la variable c.

Page 52: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Una Programación Elegante

Podemos crear listas como sigue:

c = [x^2 for x in range(5)]

Esto nos proporciona la lista [ 0, 1, 4, 9, 16] y la asignaa la variable c.

Podemos incluso añadir condiciones:

c = [sqrt(x^2-7) for x in range(5) if x^2-7 > 0]

asignará a c la lista [ sqrt(2), 3].

Page 53: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Números en una Base

Dado un número entero, podemos representarlo en diferentesbases. Habitualmente lo representamos en base 10, pero consage podemos transformarlo en cualquier otra base.

Page 54: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Números en una Base

Dado un número entero, podemos representarlo en diferentesbases. Habitualmente lo representamos en base 10, pero consage podemos transformarlo en cualquier otra base.

Si ponemos

a = ZZ(100)

bin(a)

hex(a)

Page 55: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Números en una Base

Dado un número entero, podemos representarlo en diferentesbases. Habitualmente lo representamos en base 10, pero consage podemos transformarlo en cualquier otra base.

Si ponemos

a = ZZ(100)

bin(a)

hex(a)

Obtenemos respectivamente las representaciones binarias yhexadecimal del número, 0b1100100 y 64.

Page 56: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas de Cifras

Si queremos la lista de todas las cifras, lo podemos hacer con

lascifras = a.digits(2)

Page 57: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas de Cifras

Si queremos la lista de todas las cifras, lo podemos hacer con

lascifras = a.digits(2)

Las cifras van desde la menos significativa hasta la mássignificativa.

Page 58: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas de Cifras

Si queremos la lista de todas las cifras, lo podemos hacer con

lascifras = a.digits(2)

Las cifras van desde la menos significativa hasta la mássignificativa.

El número de cifras podemos saberlo con len(lascifras) odirectamente a.ndigits(2).

Page 59: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Listas de Cifras

Si queremos la lista de todas las cifras, lo podemos hacer con

lascifras = a.digits(2)

Las cifras van desde la menos significativa hasta la mássignificativa.

El número de cifras podemos saberlo con len(lascifras) odirectamente a.ndigits(2).

Lo que se ha hecho para la base 2, se puede hacer paracualquier base.

Page 60: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Divisibilidad

Una de las propiedades más interesantes de los númerosenteros es la divisibilidad.

Page 61: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Divisibilidad

Una de las propiedades más interesantes de los númerosenteros es la divisibilidad.

Para ver si dos números son divisibles entre sí, podemoscalcular el resto y ver que es cero o utilizar un comandoespecial que nos lo dice:

a = ZZ(10)

b = ZZ(5)

b.divides(a)

Page 62: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Divisibilidad

Una de las propiedades más interesantes de los númerosenteros es la divisibilidad.

Para ver si dos números son divisibles entre sí, podemoscalcular el resto y ver que es cero o utilizar un comandoespecial que nos lo dice:

a = ZZ(10)

b = ZZ(5)

b.divides(a)

nos devolverá True.

Page 63: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Divisores de un Número

También podemos calcular la lista de divisores de un número.Nos dará los divisores positivos.

Page 64: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Divisores de un Número

También podemos calcular la lista de divisores de un número.Nos dará los divisores positivos.

El comando es

150.divisors ()

Page 65: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Divisores de un Número

También podemos calcular la lista de divisores de un número.Nos dará los divisores positivos.

El comando es

150.divisors ()

Nos devolverá la lista

[1, 2, 3, 5, 6, 10 , 15 , 25 , 30 , 50 , 75 , 150]

Page 66: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Divisores de un Número

También podemos calcular la lista de divisores de un número.Nos dará los divisores positivos.

El comando es

150.divisors ()

Nos devolverá la lista

[1, 2, 3, 5, 6, 10 , 15 , 25 , 30 , 50 , 75 , 150]

Esta lista se puede asignar a una variable, recorrerla, ocualquier otra operación que queramos hacerle.

Page 67: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Números Primos

Un número es primo si no es 1 y sus únicos divisores son élmismo y la unidad.

Page 68: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Números Primos

Un número es primo si no es 1 y sus únicos divisores son élmismo y la unidad.

Podemos preguntarnos si un número es primo de diferentesformas, por ejemplo

1.is_prime ()

2.is_prime ()

Page 69: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Números Primos

Un número es primo si no es 1 y sus únicos divisores son élmismo y la unidad.

Podemos preguntarnos si un número es primo de diferentesformas, por ejemplo

1.is_prime ()

2.is_prime ()

nos devolverán respectivamente False y True.

Page 70: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Números Primos

Un número es primo si no es 1 y sus únicos divisores son élmismo y la unidad.

Podemos preguntarnos si un número es primo de diferentesformas, por ejemplo

1.is_prime ()

2.is_prime ()

nos devolverán respectivamente False y True.

Esto es lo mismo que is_prime(1) y is_prime(2).

Page 71: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Factorización

Podemos descomponer un número en producto de sus factoresprimos, lo que se conce como factorización.

Page 72: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Factorización

Podemos descomponer un número en producto de sus factoresprimos, lo que se conce como factorización.

Si ponemos por ejemplo

factor(1234567890)

Page 73: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Factorización

Podemos descomponer un número en producto de sus factoresprimos, lo que se conce como factorización.

Si ponemos por ejemplo

factor(1234567890)

Nos devolverá 2 · 32· 5 · 3607 · 3803.

Page 74: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El Anillo de Polinomios

Se pueden definir también estructuras más complejas, porejemplo los polinomios.

Page 75: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El Anillo de Polinomios

Se pueden definir también estructuras más complejas, porejemplo los polinomios.

Podemos asignar a una variable toda una estructuraalgebraica, por ejemplo:

R = PolynomialRing(QQ ,’x’)

S = PolynomialRing(RR ,’x’)

Page 76: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

El Anillo de Polinomios

Se pueden definir también estructuras más complejas, porejemplo los polinomios.

Podemos asignar a una variable toda una estructuraalgebraica, por ejemplo:

R = PolynomialRing(QQ ,’x’)

S = PolynomialRing(RR ,’x’)

nos asignará a R el conjunto de los polinomios con coeficientesen los números racionales y variable x . En el caso de S seránlos polinomios con coeficientes reales.

Page 77: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Polinomios

Con las anteriores definiciones, podemos poner

p = R(x^2-2)

q = S(x^2-2)

Page 78: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Polinomios

Con las anteriores definiciones, podemos poner

p = R(x^2-2)

q = S(x^2-2)

Podemos preguntar a sage si p y q son iguales,

p == q

Page 79: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Polinomios

Con las anteriores definiciones, podemos poner

p = R(x^2-2)

q = S(x^2-2)

Podemos preguntar a sage si p y q son iguales,

p == q

Nos devolverá True, es decir, son el mismo polinomio, pero sucomportamiento es diferente.

Page 80: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Polinomios (II)

Si escribimos

factor(p)

factor(q)

Page 81: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Polinomios (II)

Si escribimos

factor(p)

factor(q)

Obtenemos respectivamente

(x2− 2)

(x − 1.41421356237310) · (x + 1.41421356237310)

Page 82: lgebra y Matem tica Discreta - 2012 Sesi n de Pr cticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios

Polinomios (II)

Si escribimos

factor(p)

factor(q)

Obtenemos respectivamente

(x2− 2)

(x − 1.41421356237310) · (x + 1.41421356237310)

Eso es porque como polinomio con coeficientes en Q elpolinomio es irreducible, pero como polinomio con coeficientesreales no lo es.