Llistes (1) X65154


Statement
 

pdf   zip

html

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.

  1. Programeu una funció entera count_diff(f) que donada una llista d’enters f retorni el nombre de valors diferents a la llista.
  2. 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.
  3. Programeu una funció delete_multiples(k, f) que donat un enter k més gran que zero i una llista d’enters retorni la llista de números de f que no són múltiples de k . Els números a la llista resultat han de preservar l’ordre relatiu en què apareixen a  f .
  4. Programeu una funció erato(n) que retorni la llista ordenada dels nombres primers que són menors que n . 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.
  5. Programeu una funció merge (f, g) que donades dues llistes ordenades de nombres enters  fg retorni una llista ordenada amb tots els números de f i g . A aquesta llista se li coneix amb el nom de llista fusió de f i g . Atenció: no utilitzeu cap funció auxiliar d’ordenació.

Puntuació

Cada funció val 20 punts.

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
Catalan
Other languages
English Spanish
Official solutions
Python
User solutions
Python