>>> from coefs_poli import coeficients_polinomi >>> import itertools >>> p = { # Polinomi p(x) = -x^5 + 7x^2 - 3 ... 0: -3, ... 2: 7, ... 5: -1 ... } >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, 7)) # doctesttag: +TAG=1_coefs_poli [(0, -3), (1, 0), (2, 7), (3, 0), (4, 0), (5, -1), (6, 0)] >>> p = { # Polinomi p(x) = -10x^4 - 5x^3 - 12x ... 1: 12, ... 3: -5, ... 4: -10 ... } >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, 9)) # doctesttag: +TAG=1_coefs_poli [(0, 0), (1, 12), (2, 0), (3, -5), (4, -10), (5, 0), (6, 0), (7, 0), (8, 0)] >>> p = {3: -6, 4: 2, 5: -2, 16: 3, 9: 8, 19: -9} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> p = {9: 5, 1: -2, 0: 4, 10: 8, 3: 6, 15: 1, 7: -6, 6: -9, 18: -2, 16: -2} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> p = {18: -7, 10: 4, 16: 9, 5: 8, 15: -6, 6: 8, 2: -7, 0: -1, 4: 6, 12: -1, 9: 6, 13: 5, 14: 4, 3: -7, 19: -5} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> p = {16: -5, 5: 3, 19: -8, 17: -9, 13: 0, 10: -2, 18: 1, 12: -5, 0: 6, 1: -5, 7: 0, 3: 0, 8: -3, 2: 8, 11: -5, 9: 7, 14: -3, 6: -3, 4: -4, 15: -1} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> p = {5: 8, 7: 2, 15: -9, 13: -1, 16: -4, 10: -3, 4: 4} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> p = {11: -9, 8: -3, 16: -8, 7: -1, 14: 0, 0: -9, 3: 7, 17: -4, 9: 1, 18: -5, 5: -2, 15: -2, 4: 8} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> p = {16: -5, 12: 5, 17: 2, 13: -9, 9: -7, 11: 2, 4: 7, 0: -8, 15: -7, 8: 3, 5: -7, 6: 1, 1: 7, 19: -4, 3: 6, 2: 6, 14: -6} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> p = {0: 10, 12: -7, 8: 2, 13: 8} >>> c = coeficients_polinomi(p) >>> list(itertools.islice(c, max(p) + 1)) # doctesttag: +TAG=1_coefs_poli [(0, 10), (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)] >>> all(f == 0 for _, f in itertools.islice(c, 10)) True >>> 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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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)) # doctesttag: +TAG=2_aval_poli [(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, -2) >>> list(itertools.islice(r, gp + 1)) # doctesttag: +TAG=2_aval_poli [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 512), (9, 512), (10, 512), (11, 512), (12, -28160), (13, -93696)]