>>> from aval_poli import avalua_polinomi >>> import itertools --ini-enunciat >>> p = iter([(0, -3), (1, 0), (2, 7), (3, 0), (4, 0), (5, -1), (6, 0)]) >>> r = avalua_polinomi(p, 1) >>> r is iter(r) # r és un iterador True >>> list(itertools.islice(r, 7)) [(0, -3), (1, -3), (2, 4), (3, 4), (4, 4), (5, 3), (6, 3)] >>> p = iter([(0, 0), (1, 12), (2, 0), (3, -5), (4, -10), (5, 0), (6, 0), (7, 0), (8, 0)]) >>> r = avalua_polinomi(p, -1) >>> list(itertools.islice(r, 9)) [(0, 0), (1, -12), (2, -12), (3, -7), (4, -17), (5, -17), (6, -17), (7, -17), (8, -17)] --fi-enunciat >>> def completa(p): ... p1, p2 = itertools.tee(p) ... gp = max(g for g, _ in p1) ... return itertools.chain(p2, ((g, 0) for g in itertools.count(gp+1))), gp >>> p = [(0, 0), (1, 0), (2, 0), (3, -6), (4, 2), (5, -2), (6, 0), (7, 0), (8, 0), (9, 8), (10, 0), (11, 0), (12, 0), (13, 0), (14, 0), (15, 0), (16, 3), (17, 0), (18, 0), (19, -9)] >>> it_p, g = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, g + 1)) [(0, 0), (1, 0), (2, 0), (3, 6), (4, 8), (5, 10), (6, 10), (7, 10), (8, 10), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 5), (17, 5), (18, 5), (19, 14)] >>> p = [(0, 4), (1, -2), (2, 0), (3, 6), (4, 0), (5, 0), (6, -9), (7, -6), (8, 0), (9, 5), (10, 8), (11, 0), (12, 0), (13, 0), (14, 0), (15, 1), (16, -2), (17, 0), (18, -2)] >>> it_p, gp = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, gp + 1)) [(0, 4), (1, 6), (2, 6), (3, 0), (4, 0), (5, 0), (6, -9), (7, -3), (8, -3), (9, -8), (10, 0), (11, 0), (12, 0), (13, 0), (14, 0), (15, -1), (16, -3), (17, -3), (18, -5)] >>> p = [(0, -1), (1, 0), (2, -7), (3, -7), (4, 6), (5, 8), (6, 8), (7, 0), (8, 0), (9, 6), (10, 4), (11, 0), (12, -1), (13, 5), (14, 4), (15, -6), (16, 9), (17, 0), (18, -7), (19, -5)] >>> it_p, gp = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, gp + 1)) [(0, -1), (1, -1), (2, -8), (3, -1), (4, 5), (5, -3), (6, 5), (7, 5), (8, 5), (9, -1), (10, 3), (11, 3), (12, 2), (13, -3), (14, 1), (15, 7), (16, 16), (17, 16), (18, 9), (19, 14)] >>> p = [(0, 6), (1, -5), (2, 8), (3, 0), (4, -4), (5, 3), (6, -3), (7, 0), (8, -3), (9, 7), (10, -2), (11, -5), (12, -5), (13, 0), (14, -3), (15, -1), (16, -5), (17, -9), (18, 1), (19, -8)] >>> it_p, gp = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, gp + 1)) [(0, 6), (1, 11), (2, 19), (3, 19), (4, 15), (5, 12), (6, 9), (7, 9), (8, 6), (9, -1), (10, -3), (11, 2), (12, -3), (13, -3), (14, -6), (15, -5), (16, -10), (17, -1), (18, 0), (19, 8)] >>> p = [(0, 0), (1, 0), (2, 0), (3, 0), (4, 4), (5, 8), (6, 0), (7, 2), (8, 0), (9, 0), (10, -3), (11, 0), (12, 0), (13, -1), (14, 0), (15, -9), (16, -4)] >>> it_p, gp = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, gp + 1)) [(0, 0), (1, 0), (2, 0), (3, 0), (4, 4), (5, -4), (6, -4), (7, -6), (8, -6), (9, -6), (10, -9), (11, -9), (12, -9), (13, -8), (14, -8), (15, 1), (16, -3)] >>> p = [(0, -9), (1, 0), (2, 0), (3, 7), (4, 8), (5, -2), (6, 0), (7, -1), (8, -3), (9, 1), (10, 0), (11, -9), (12, 0), (13, 0), (14, 0), (15, -2), (16, -8), (17, -4), (18, -5)] >>> it_p, gp = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, gp + 1)) [(0, -9), (1, -9), (2, -9), (3, -16), (4, -8), (5, -6), (6, -6), (7, -5), (8, -8), (9, -9), (10, -9), (11, 0), (12, 0), (13, 0), (14, 0), (15, 2), (16, -6), (17, -2), (18, -7)] >>> p = [(0, -8), (1, 7), (2, 6), (3, 6), (4, 7), (5, -7), (6, 1), (7, 0), (8, 3), (9, -7), (10, 0), (11, 2), (12, 5), (13, -9), (14, -6), (15, -7), (16, -5), (17, 2), (18, 0), (19, -4)] >>> it_p, gp = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, gp + 1)) [(0, -8), (1, -15), (2, -9), (3, -15), (4, -8), (5, -1), (6, 0), (7, 0), (8, 3), (9, 10), (10, 10), (11, 8), (12, 13), (13, 22), (14, 16), (15, 23), (16, 18), (17, 16), (18, 16), (19, 20)] >>> p = [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 2), (9, 0), (10, 0), (11, 0), (12, -7), (13, 8)] >>> it_p, gp = completa(p) >>> r = avalua_polinomi(it_p, -1) >>> list(itertools.islice(r, gp + 1)) [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 2), (9, 2), (10, 2), (11, 2), (12, -5), (13, -13)]