Listas (1) X65154


Statement
 

pdf   zip

html

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 f 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 k mayor que cero y una lista de enteros retorne la lista de números de f que no son múltiplos de k. Los números en la lista resultado deben preservar el orden relativo en el que aparecen en f.
  4. Programad una función erato(n) que retorne la lista ordenada de los números primos que son menores que n. 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 fg retorne una lista ordenada con todos los números de f y g. A esta lista se le conoce con el nombre de lista fusión de f y g. Atención: no uséis ninguna función auxiliar de ordenación.

Puntuación

Cada función vale 20 puntos.

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