Es demanen els codis de diverses funcions. En cada cas hi ha prou amb unes poques línies de codi. Seguiu el format dels exemples que es mostren a sota.
Programeu una funció entera @count_diff(f)@ que donada una llista d’enters retorni el nombre de valors diferents a la llista.
Programeu una funció float @product(u, v)@ que donades dues llistes de floats que representen dos vectors retorni el producte escalar. S’assumeix que les dues llistes tenen la mateixa longitud i són no buides.
Programeu una funció @delete_multiples(k, f)@ que donat un enter més gran que zero i una llista d’enters retorni la llista de números de que no són múltiples de . Els números a la llista resultat han de preservar l’ordre relatiu en què apareixen a .
Programeu una funció @erato(n)@ que retorni la llista ordenada dels nombres primers que són menors que . El vostre codi ha d’implementar l’algoritme Sedàs d’Eratòstenes, que és una de les formes més eficients d’obtenir tots els primers petits. L’algoritme rep el nom en honor del matemàtic de l’antiga Grècia Eratòstenes de Cirene.
Programeu una funció @merge (f, g)@ que donades dues llistes ordenades de nombres enters i retorni una llista ordenada amb tots els números de i . A aquesta llista se li coneix amb el nom de llista fusió de i . Atenció: no utilitzeu cap funció auxiliar d’ordenació.
Cada funció val 20 punts.
>>> 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]