Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
En esta actividad practicarás el uso de Python y programarás tu primer algoritmo. Para lograrlo,
tendrás que conocer algunas funciones sobre números aleatorios con este lenguaje.
>>> dir(R)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random',
'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill',
'_BuiltinMethodType', '_MethodType', '__all__', '__builtins__',
'__doc__', '__file__', '__name__', '__package__', '_acos', '_ceil',
'_cos', '_e', '_exp', '_hashlib', '_hexlify', '_inst', '_log', '_pi',
'_random', '_sin', '_sqrt', '_test', '_test_generator', '_urandom',
'_warn', 'betavariate', 'choice', 'division', 'expovariate',
'gammavariate', 'gauss', 'getrandbits', 'getstate', 'jumpahead',
'lognormvariate', 'normalvariate', 'paretovariate', 'randint',
'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle',
'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>>
Lo que muestra todos los paquetes y funciones dependientes de R, por ejemplo, puedes llamar
a la función random como R.random() o shuffle con R.shuffle(L) o randint como R.randint(n,m).
En el siguiente ejemplo puedes ver el uso de varias funciones de random.
>>> x = R.random()
>>> x
0.8697711033618989
>>> x = R.random()*10
>>> x
4.224161989254961
>>> x = int(R.random()*10)
>>> x
8
>>> x = R.randint(1,9)
>>> x
9
>>>
1
Educación Abierta y a Distancia * Ciencias Exactas, Ingenierías y Tecnologías
Computación II
Unidad 1. Estructuras de datos y análisis de algoritmos
Esto es importante porque vas a generar una matriz con estos datos. Para tal efecto, puedes
hacerlo de dos formas: una sería una lista de listas, y la otra, con un diccionario. En el siguiente
par de ejemplos puedes ver la definición de una matriz de 2x2 de ambas formas
>>> L = [[1,2],[3,4]]
>>> L[0][1]
2
>>> M = dict()
>>> M[0,0]=1
>>> M[0,1]=2
>>> M[1,0]=3
>>> M[1,1]=4
>>> M
{(0, 1): 2, (1, 0): 3, (0, 0): 1, (1, 1): 4}
La ventaja de generar la matriz con listas es, básicamente, que es la forma más canónica de
crear estos objetos en diferentes lenguajes, y con diccionarios en Python es mucho más
eficiente por la forma en que está programada esta estructura, pero la notación cambia un poco
respecto al de listas. La implementación de la actividad está pensada para hacerla con listas y
queda como ejercicio extra el que las implementes con diccionarios.
Para crear una matriz de nxm con valor 0 en todas sus entradas, puedes hacer lo siguiente.
>>> L = []
>>> for i in range(4): L.append([0 for j in range(4)])
...
>>> L
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>>
Usualmente, el for debe ser escrito en varias líneas, pero en este caso puedes usarlo en una
sola línea, ya que el cuerpo consta únicamente de una línea; en este caso, la matriz es de 4x4.
Instrucciones
1. Crea una matriz con valores enteros aleatorios que tomen valores desde -9 a 9.
2
Educación Abierta y a Distancia * Ciencias Exactas, Ingenierías y Tecnologías
Computación II
Unidad 1. Estructuras de datos y análisis de algoritmos
2. Implementa una función que multiplique ambas matrices y regrese el resultado en otra
lista de listas. El prototipo de la función es como el siguiente:
K = def multiplica_matriz(L,M)
donde L, M son matrices válidas.
3
Educación Abierta y a Distancia * Ciencias Exactas, Ingenierías y Tecnologías
Computación II
Unidad 1. Estructuras de datos y análisis de algoritmos
ES1410910642
SEPTIEMBRE 2019
4
Educación Abierta y a Distancia * Ciencias Exactas, Ingenierías y Tecnologías