Una estranya sèrie¶
L’Octubre del 1996 va sortir publicada al New York Times una sèrie matemàtica de nombres enters:
2, 3, 3, 5, 10, 13, 39, 43, 172, 177, 885, 891, 5346, 5353, 37471, …
Aquesta sèrie té com a primer element el 2 i els següents s’obtenen aplicant la regla següent: suma 1, multiplica per 1, suma 2, multiplica per 2, suma 3, multiplica per 3, i així successivament.
Formalment, aquesta sèrie es defineix com:
on \(E[x]\) indica la part entera de x.
També podeu consultar a The On-Line Encyclopedia of Integer Sequences™ (OEIS™).
Deseu en el fitxer estranyaserie.py
el generador i la funció
següents:
Dissenyeu el generador següent:
- estranyaserie.serie_times()¶
Genera els elements d’aquesta sèrie (infinita) de nombre naturals.
Per exemple:
>>> it = serie_times() >>> for i in range(15): ... print(next(it)) 2 3 3 5 10 13 39 43 172 177 885 891 5346 5353 37471
Disposeu de més jocs de proves al fitxer
tests-serie-times.txt
.Utilitzeu l’iterador anterior per escriure la funció següent:
- estranyaserie.llista_serie_times(n, m)¶
Retorna una llista amb els nombres de la sèrie entre el n-èssim i el m-èssim (ambdós inclosos i entenent que el primer element de la sèrie és el d’índex 1).
Per exemple:
>>> llista_serie_times(1, 4) [2, 3, 3, 5] >>> llista_serie_times(7, 7) [39]
Disposeu de més jocs de proves al fitxer
tests-llista-serie.txt
.
Solució
Disposeu d’una solució al fitxer estranyaserie.py
.