Mostreja

Avís

Per a resoldre aquest exercici no es poden fer servir iteracions (ni for ni while ), només les funcions predefinides de Python i les dels mòduls itertools, functools i operator. Tampoc es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar tots els elements dels iteradors.

Volem mostrejar una funció corresponent a un polinomi de segon grau de la forma x²+bx+c per un conjunt infinit de valors x que s’inicien en un valor donat, xini, i a intervals també d’un valor donat, pas.

Dissenya la funció següent:

mostreja.mostreja(b, c, xini, pas)

Donats els valors de b, c, xini i pas (tots enters), tal com s’han descrit, retorna un iterador infinit de tuples de la forma (x, y) corresponents als punts mostrejats. Exemples:

>>> from mostreja import *

>>> it = mostreja(2, 5, 1, 1)
>>> for i in range(4):
...    print(next(it), end = '/')
(1, 8)/(2, 13)/(3, 20)/(4, 29)/

>>> it = mostreja(2, 5, 2, 2)
>>> for i in range(4):
...    print(next(it), end = '/')
(2, 13)/(4, 29)/(6, 53)/(8, 85)/

>>> it = mostreja(0, 0, 0, 1)
>>> for i in range(10):
...    print(next(it), end = '/')
(0, 0)/(1, 1)/(2, 4)/(3, 9)/(4, 16)/(5, 25)/(6, 36)/(7, 49)/(8, 64)/(9, 81)/

Disposeu de jocs de prova en els fitxers test-mostreja.txt i test-mostreja2.txt.

Solució

Disposeu d’una solució al fitxer mostreja.py.