def solve(seq): """Return the Polynomial that can be used to compute the given sequence""" coefficients = calculateCoefficients(seq) p = Polynomial() for i in xrange(0, len(coefficients)): p = p.plus(Polynomial(coefficients[i]).times(factorialPower(i))) p.removeTrailingZeroes() return p
def factorialPower(n): p = Polynomial(1) for i in xrange(1, n + 1): p = p.times(Polynomial(1 - i, 1)) p.removeTrailingZeroes() return p