1. Pesos normalitzats (4 punts)¶
Avís
Per a resoldre aquest exercici no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar tots els elements d’un iterador.
Una manera de calcular una mitjana ponderada és normalitzant els pesos. Així, a partir d’una successió finita de pesos \(w_1, w_2, \ldots, w_n\), els pesos normalitzats es calculen com segueix:
\[w'_i = \frac{1}{\sum_{i = 1}^{n} w_i}\]
Al mòdul mitjanes (fitxer mitjanes.py), desa la
funció següent:
- mitjanes.normalitza_pesos(ps)¶
Calcula els pesos normalitzats.
- Paràmetres:
ps – iterable de pesos (nombres)
- Retorna:
iterador dels pesos de ps normalitzats
- Tipus de retorn:
iterador de
float
Per exemple:
>>> p = iter([0.3, 0.7, 0.45, 0.72, 1.35, 2.47]) >>> pn = normalitza_pesos(p) >>> iter(pn) is pn True >>> lpn = list(pn) >>> sum(lpn) 1.0 >>> list(round(x, 2) for x in lpn) [0.05, 0.12, 0.08, 0.12, 0.23, 0.41]
Disposes d’un joc de proves més complet en el fitxer
test-normalitza_pesos.txt.