Listas (1) P88124


Statement
 

pdf   zip

Se piden los códigos de varias funciones. En cada caso bastan unas pocas líneas de código. Seguid el formato de los ejemplos que se muestran abajo.

  1. Programad una función entera @count_diff(f)@ que dada una lista de enteros ff retorne el número de valores diferentes en la lista.

  2. Programad una función float @product(u, v)@ que dadas dos listas de floats que representan sendos vectores retorne el producto escalar. Se asume que las dos listas tienen la misma longitud y son no vacías.

  3. Programad una función @delete_multiples(k, f)@ que dado un entero kk mayor que cero y una lista de enteros retorne la lista de números de ff que no son múltiplos de kk. Los números en la lista resultado deben preservar el orden relativo en el que aparecen en ff.

  4. Programad una función @erato(n)@ que retorne la lista ordenada de los números primos que son menores que nn. Vuestro código tiene que implementar el algoritmo Criba de Eratóstenes, que es una de las formas más eficientes de obtener todos los primos pequeños. El algoritmo recibe el nombre en honor del matemático de la antigua Grecia Eratóstenes de Cirene.

  5. Programad una función @merge(f, g)@ que dadas dos listas ordenadas de números enteros ffgg retorne una lista ordenada con todos los números de ff y gg. A esta lista se le conoce con el nombre de lista fusión de ff y gg. Atención: no uséis ninguna función auxiliar de ordenación.

Puntuación

Cada función vale 20 puntos.

Ejemplo de sessión

Sample session
>>> count_diff([3, -1, 0, 3 ,2, 0])
4
>>> product([1/3, 0, -1], [3/2, 1/2, 2])
-1.5
>>> delete_multiples(2, [6, 3, -2, -5, 7])
[3, -5, 7]
>>> erato(30)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
>>> merge([1, 2, 5, 9], [-3, 0, 2, 11, 12, 13])
[-3, 0, 1, 2, 2, 5, 9, 11, 12, 13]
Information
Author
Jorge Castro
Language
Spanish
Translator
Original language
Catalan
Other languages
Catalan English
Official solutions
Python
User solutions
Python