• No se han encontrado resultados

Álgebra y Matemática Discreta Sesión de Prácticas 1

N/A
N/A
Protected

Academic year: 2021

Share "Álgebra y Matemática Discreta Sesión de Prácticas 1"

Copied!
24
0
0

Texto completo

(1)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1

´

Algebra y Matem´atica Discreta

Sesi´on de Pr´acticas 1

(c) 2013 Leandro Mar´ın, Francisco J. Vera, Gema M. D´ıaz

(2)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Estructuras Algebraicas

La Estructura como Variable

Tenemos una gran cantidad de estructuras algebraicas definidas dentro de sageque podemos utilizar.

Una de las m´as sencillas es el conjunto de los n´umeros enteros

Z. En sageeste conjunto se denota por ZZ. Si escribimos

ZZ

el programa nos responder´aInteger Ring, es decir anillo de los n´umeros enteros.

(3)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Estructuras Algebraicas

Operaciones con Enteros

Vamos a hacer algunas operaciones b´asicas en los n´umeros enteros. La suma, resta y multiplicaci´on se realizan con los s´ımbolos habituales +,-y*.

Si escribimos

a = 6*7*8*9

print a

(4)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Estructuras Algebraicas

Divisi´on

La divisi´on requiere un poco m´as de explicaci´on, porque podemos hacer la siguiente operaci´on:

print a/16

y obtenemos 189 porque la divisi´on es exacta, pero si hacemos print a/10

obtenemos 15125 . En este caso la divisi´on no es exacta y nos ha dejado la operaci´on en forma fraccionaria.

(5)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Estructuras Algebraicas

Cociente y Resto

El realidad este operador en los n´umeros enteros no es como en otros lenguajes, el cociente de la divisi´on.

Para obtener el cociente de la divisi´on tenemos que poner print a//10

con lo que obtenemos 302.

(6)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Estructuras Algebraicas

El conjunto de los n´umeros racionales se denotaQQ y el de los n´umeros reales RR.

El conjunto de los n´umeros realesRR utiliza representaciones decimales finitas del n´umero.

Cuando tenemos un elemento en un conjunto y queremos llevarlo a otro, lo que hacemos es utilizar el nombre de la estructura, as´ı por ejemplo

a = 1/3 b = RR ( a )

print a

print b

nos dar´a los resultados 1

(7)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Estructuras Algebraicas

En realidad si escribimos

RR

nos dice Real Field with 53 bits of precision, es decir, cuerpo de los n´umeros reales con 53 bits de precisi´on. Es una precisi´on suficientemente buena para la mayor´ıa de nuestras necesidades.

Si en alguna ocasi´on necesitamos ampliarla (o reducirla) es posible.

(8)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Estructuras Algebraicas

Si intentamos forzar a que un elemento est´e dentro de una estructura en la que no puede estar, obtenemos un error, por ejemplo, si ponemosZZ(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)()

(9)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Listas

Listas

Los objetos ensage se pueden agrupar en listas.

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

m i l i s t a = [1 ,2 , 3]

asigna a la variable milista la lista formada por los n´umeros 1, 2 y 3.

Los elementos est´an numerados desde 0, as´ımilista[0]

tendr´a el valor 1, milista[1] tendr´a el valor 2 y

milista[2] tendr´a el valor 3.

Los valores milista[n] se pueden usar como variables ordinarias y hacer cualquier operaci´on sobre ellas.

(10)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Listas

Recorriendo Listas

La gran ventaja de tener los n´umeros en una lista, es que podemos recorrer los elementos de la lista.

Si ponemos

m i n u e v a l i s t a = [1 ,4 ,7 ,-1] for x in m i n u e v a l i s t a:

print x*x

(11)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Listas

for,in,:,etc.

Hay varios puntos importantes en el c´odigo:

m i n u e v a l i s t a = [1 ,4 ,7 ,-1] for x in m i n u e v a l i s t a:

print x*x

Utilizamos forpara recorrer la lista y decimos c´omo queremos llamar a los elementos: los llamaremos x.

Por tanto xir´a recorriendo cada uno de los valores de la lista. Despu´es ponemos : y la siguiente l´ınea tiene que estar

desplazada a la derecha un n´umero de espacios. Ese

desplazamiento hace asage reconocer que esas intrucciones est´an en el bucle.

(12)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Listas

El comando

range

Las listas de n´umeros [0,1,2,3,...,n-1] se pueden generar con el comandorange(n)

Si escribimosrange(10) nos devolver´a la lista

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Podemos usarlo directamente for j in range( 10 ):

print j

(13)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Listas

El comando

range

(II)

Si escribimosrange(3,6) nos devolver´a [3,4,5]. Notemos que el n´umero 6 no se alcanza, enrange(a,b)el primer valor de la lista ser´aa y el ´ultimo b−1.

Tambi´en podemos hacer listas que en cada paso sumen una cantidad distinta de 1, por ejemplo

range(7 , 12 , 2 )

Nos escribir´a [7,9,11].

Tambi´en podemos is hacia abajo, por ejemplo

(14)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Listas

Comandos para Listas

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

Si milistaes una variable que contiene una lista, entonces su longitud eslen(milista)

Si queremos saber el n´umero de veces que un valor aparece en una lista,milista.count(x) nos dice el n´umero de veces que xaparece en milista(que tambi´en puede ser 0) El comandosum(milista) nos dice cuanto suman todos los elementos de la lista y prod(milista)su producto.

(15)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Listas

Una Programaci´on 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 asigna a la variable c.

Podemos incluso a˜nadir condiciones:

c = [sqrt( x ^ 2-7 ) for x in range( 5 ) if x ^ 2-7 > 0] asignar´a a cla lista [sqrt(2), 3].

(16)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Los N´umeros Enteros

N´umeros en una Base

Dado un n´umero entero, podemos representarlo en diferentes bases. Habitualmente lo representamos en base 10, pero con

sage podemos transformarlo en cualquier otra base. Si ponemos

a = ZZ ( 100 ) bin ( a ) hex ( a )

Obtenemos respectivamente las representaciones binarias y hexadecimal del n´umero, 0b1100100y64.

(17)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Los N´umeros Enteros

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´as significativa.

El n´umero de cifras podemos saberlo conlen(lascifras)o directamente a.ndigits(2).

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

(18)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Los N´umeros Enteros

Divisibilidad

Una de las propiedades m´as interesantes de los n´umeros enteros es la divisibilidad.

Para ver si dos n´umeros son divisibles entre s´ı, podemos calcular el resto y ver que es cero o utilizar un comando especial que nos lo dice:

a = ZZ ( 10 ) b = ZZ ( 5 ) b . d i v i d e s ( a )

(19)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Los N´umeros Enteros

Divisores de un N´umero

Tambi´en podemos calcular la lista de divisores de un n´umero. Nos dar´a los divisores positivos.

El comando es

150 . d i v i s o r s ()

Nos devolver´a la lista

[1 , 2 , 3 , 5 , 6 , 10 , 15 , 25 , 30 , 50 , 75 , 150] Esta lista se puede asignar a una variable, recorrerla, o cualquier otra operaci´on que queramos hacerle.

(20)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Los N´umeros Enteros

N´umeros Primos

Un n´umero es primo si no es 1 y sus ´unicos divisores son ´el mismo y la unidad.

Podemos preguntarnos si un n´umero es primo de diferentes formas, por ejemplo

1 . i s _ p r i m e () 2 . i s _ p r i m e ()

nos devolver´an respectivamenteFalse yTrue.

(21)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Los N´umeros Enteros

Factorizaci´on

Podemos descomponer un n´umero en producto de sus factores primos, lo que se conce como factorizaci´on.

Si ponemos por ejemplo

factor ( 1 2 3 4 5 6 7 8 9 0 )

Nos devolver´a 2·32

(22)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Polinomios

El Anillo de Polinomios

Se pueden definir tambi´en estructuras m´as complejas, por ejemplo los polinomios.

Podemos asignar a una variable toda una estructura algebraica, por ejemplo:

var (’x ’)

R = P o l y n o m i a l R i n g ( QQ ,’x ’) S = P o l y n o m i a l R i n g ( RR ,’x ’)

nos asignar´a aRel conjunto de los polinomios con coeficientes en los n´umeros racionales y variablex. En el caso de Sser´an los polinomios con coeficientes reales.

(23)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica

Polinomios

Polinomios

Con las anteriores definiciones, podemos poner

p = R ( x ^ 2-2 ) q = S ( x ^ 2-2 )

Podemos preguntar a sage si p yq son iguales,

p = = q

Nos devolver´a True, es decir, son el mismo polinomio, pero su

(24)

Algebra y Matem´atica Discreta Sesi´on de Pr´acticas 1 Aritm´etica Polinomios

Polinomios (II)

Si escribimos factor ( p ) factor ( q ) Obtenemos respectivamente (x22) (x−1.41421356237310)·(x+ 1.41421356237310)

Eso es porque como polinomio con coeficientes enQel polinomio es irreducible, pero como polinomio con coeficientes reales no lo es.

Referencias

Documento similar

La elasticidad de la demanda del bien i con respecto al precio del bien j se define como el cociente entre el cambio porcentual en la cantidad demandada y el cambio porcentual en

Estad´ıstica y Matem´ aticas presentan una alta correlaci´on con este eje (COR 2 es 0.419 y 0.652) estando una a cada lado del origen, por lo que ambos perfiles que eran

De esta manera, ocupar, resistir y subvertir puede oponerse al afrojuvenicidio, que impregna, sobre todo, los barrios más vulnerables, co-construir afrojuvenicidio, la apuesta

Originally con- ceived as a meeting place for the Departamentos de Matem´ atica Aplicada y de M´ etodos Estad´ısticos de la Universidad de Zaragoza and the Laboratoire de

The main goal of this paper is establishing an analogous of Theorem 1.1 for Fredholm Operators of index zero within the context of the degree for Fredholm maps of

En este trabajo se presenta una experiencia docente dise˜ nada a partir de una pr´ actica de ordenador y un trabajo grupal asociado, sobre la aplicaci´ on de la aritm´ etica modular

Muchos autores han brindado conceptos sobre qué es pensamiento computacional, entre ellos se encuentran: (Wing 2006; Wing, 2008; Cuny et all, 2010; CSTA and ISTE, 2011; Barr

- D: Mediante el uso de diapositivas explica el tema y se resuelve ejercicios de la guía en el tema de Reglas de Inferencia para transformación de funciones, se pide a