2. Fraccions egípcies (3 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 fracció unitària és un nombre racional escrit sota la forma d’una fracció en què el numerador és 1 i el denominador és un nombre enter positiu. Per exemple, \(\frac{1}{7}\) o \(\frac{1}{2}\).
Una fracció egípcia és una suma de fraccions unitàries de denominadors diferents. Per exemple, \(\frac{4}{5}\) és una fracció egípcia perquè \(\frac{4}{5} = \frac{1}{2} + \frac{1}{4} + \frac{1}{20}\).
Al mòdul fraccions (fitxer fraccions.py), desa la
funció següent:
- fraccions.suma_reciprocs(ns)¶
Calcula la suma dels recíprocs dels nombres de ns.
- Paràmetres:
ns – iterable de nombres naturals diferents
- Retorna:
suma dels recíprocs dels nombres de ns. Com que els nombres són naturals diferents, els seus recíprocs són fraccions unitàries i la seva suma, una fracció egípcia.
- Tipus de retorn:
Per exemple:
>>> nbrs = iter((4, 2, 3)) >>> f = suma_reciprocs(nbrs) >>> f Fraction(13, 12)
Fixa’t que \(\frac{13}{12} = \frac{1}{4} + \frac{1}{2} + \frac{1}{3}\).
Disposes d’un joc de proves més complet en el fitxer
test-suma_reciprocs.txt.