1. Els nombres de Padovan (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.
La seqüència d’enters de Padovan (o nombres de Padovan) es defineix com:
\(x_0 = 1, x_1 = 0, x_2 = 0, x_{i} = x_{i-2} + x_{i-3}, i \geq 3\)
Els primers nombres de Padovan són:
1, 0, 0, 1, 0, 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28, 37, 49, 65, 86, 114, 151, 200, 265, 351, 465, 616, ...
En un fitxer anomenat padovan.py deseu la funció generadora
següent:
- padovan.padovan()¶
Genera un iterador sobre una seqüència (potencialment infinita) de tots els tuples (
tuple) formats per 3 valors consecutius (amb solapament) dels nombres de la seqüència de Padovan (int) i en el mateix ordre d’aquesta seqüència.Exemple:
>>> it = padovan()
>>> iter(it) == it
True
>>> next(it)
(1, 0, 0)
>>> next(it)
(0, 0, 1)
>>> next(it)
(0, 1, 0)
>>> for i in range(5):
... print(next(it), end = '-')
(1, 0, 1)-(0, 1, 1)-(1, 1, 1)-(1, 1, 2)-(1, 2, 2)-
>>> for i in range(5):
... print(next(it), end = '-')
(2, 2, 3)-(2, 3, 4)-(3, 4, 5)-(4, 5, 7)-(5, 7, 9)-
Disposeu de més proves al fitxer test-padovan.txt