2. Proves estables (2,5 punts)¶
Disposem d’una llista de llistes amb els resultats de diverses proves de mesura. Cada subllista conté les mesures obtingudes en una prova en format numèric i ordenades de forma ascendent.
Definim la mitjana dels valors centrals respecte de n com la mitjana calculada descartant els n valors més petits i els n valors més grans.
Una prova es considera estable donats n i una diferència màxima difm si el valor absolut de la diferència (sense arrodonir) entre la mitjana i la mitjana dels valors centrals respecte de n és més petita o igual que difm.
Dissenya la funció proves_estables que donada una llista de proves, un enter n i una diferència màxima difm, retorna una nova llista de tuples on cada tupla correspon a una prova estable i conté:
la posició de la subllista dins de
dades;la mitjana dels valors centrals respecte de n, arrodonida a un decimal;
la diferència entre la mitjana i la mitjana dels valors centrals respecte de n, arrodonida a un decimal.
Si cap prova és estable, la funció retornarà una llista buida.
Es pot suposar que \(n>0\) i que totes les subllistes tenen més de \(2*n\) elements.
Els següents doctests mostren exemples del que ha de fer la funció:
>>> dades1 = [
... [7.5, 8.2, 9.8, 9.9, 10.0, 10.1, 13.5, 14],
... [9.0, 9.2, 9.5, 9.6, 9.7, 9.8, 10.0, 10.1],
... [4.0, 5.0, 9.5, 9.6, 9.7, 9.8, 20.0, 22],
... [8.0, 9.5, 9.7, 9.8, 10.0, 11.0]
... ]
>>> proves_estables(dades1, 2, 0.5)
[(0, 9.9, 0.4), (1, 9.7, 0.0), (3, 9.8, 0.1)]
>>> proves_estables(dades1, 2, 0.03)
[]
Desa la funció al fitxer proves.py.
Disposes de més tests al fitxer test-proves-estables.txt
Disposes de solucions al fitxer proves.py.