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