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.
Programad una función entera @count_diff(f)@ que dada una lista de enteros retorne el número de valores diferentes en la lista.
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.
Programad una función @delete_multiples(k, f)@ que dado un entero mayor que cero y una lista de enteros retorne la lista de números de que no son múltiplos de . Los números en la lista resultado deben preservar el orden relativo en el que aparecen en .
Programad una función @erato(n)@ que retorne la lista ordenada de los números primos que son menores que . 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.
Programad una función @merge(f, g)@ que dadas dos listas ordenadas de números enteros y retorne una lista ordenada con todos los números de y . A esta lista se le conoce con el nombre de lista fusión de y . Atención: no uséis ninguna función auxiliar de ordenación.
Cada función vale 20 puntos.
>>> 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]