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.

2. n senars tetraèdrics (5 punts)

Dissenyeu la funció especificada a continuació i deseu-la en un fitxer anomenat n_tetraedric.py:

n_tetraedric.n_senars_tetraedrics(n)
Paràmetres:

n (int) – enter estrictament positiu

Retorna:

iterador dels n primers nombres senars de la successió de nombres tetraèdrics

La successió de nombres tetraèdrics \(t_1 \, t_2 \, t_3 \ldots\) es pot calcular de la manera següent:

\[t_1 = 1\]
\[t_n = t_{n - 1} + {n (n + 1)\over 2}\]

Recalquem que l’iterador retornat només ha de generar nombres d’aquesta successió que són senars.

Per exemple,


>>> it = n_senars_tetraedrics(5)
>>> for t in it:
...      print(t, end='-')
1-35-165-455-969-
>>> next(it, 'fi') # comprovem que l'iterador s'ha exhaurit
'fi'

Disposeu d’un joc de proves més complet al fitxer test-n_tetraedric.txt