Avís
Per a resoldre aquests exercicis no es poden fer servir
llistes, tuples, diccionaris ni cap altra
estructura. Ara bé, podeu dissenyar les funcions
demanades bé com a generadors, bé utilitzant les
funcions predefinides de Python i
les dels mòduls itertools, functools
i operator.
1. Coeficients d’un Polinomi¶
Representem un polinomi mitjançant un diccionari de parelles (grau, coeficient) que només conté els coeficients diferents de zero. Per exemple, el polinomi \(p(x) = -x^5 + 7x^2 - 3\) es representa amb el diccionari següent:
p = { # Polinomi p(x) = -x^5+7x^2-3
0: -3,
2: 7,
5: -1
}
Dissenyeu la funció especificada a continuació i deseu-la al mòdul
coefs_poli (fitxer coefs_poli.py):
- coefs_poli.coeficients_polinomi(p)¶
- Paràmetres:
p (dict) – polinomi representat com un diccionari de parelles (grau, coeficient no nul)
- Retorna:
iterador infinit de les parelles (grau, coeficient) per tots els graus a partir de zero
Per exemple,
>>> p = { # Polinomi p(x) = -x^5 + 7x^2 - 3
... 0: -3,
... 2: 7,
... 5: -1
... }
>>> c = coeficients_polinomi(p)
>>> c is iter(c) # c és un iterador
True
>>> list(itertools.islice(c, 7))
[(0, -3), (1, 0), (2, 7), (3, 0), (4, 0), (5, -1), (6, 0)]
>>> p = { # Polinomi p(x) = -10x^4 - 5x^3 - 12x
... 1: 12,
... 3: -5,
... 4: -10
... }
>>> c = coeficients_polinomi(p)
>>> list(itertools.islice(c, 9))
[(0, 0), (1, 12), (2, 0), (3, -5), (4, -10), (5, 0), (6, 0), (7, 0), (8, 0)]
Disposeu d’un joc de proves més complet al fitxer
tests-coefs_poli.txt