Вызов
Если дан многочлен pс действительными коэффициентами порядка 1и степени n, найдите другой qне более чем nтакой многочлен степени , который (p∘q)(X) = p(q(X)) ≡ X mod X^(n+1), или другими словами, такой, p(q(X)) = X + h(X)где где h- произвольный многочлен с ord(h) ≥ n+1. Полином qоднозначно определяется p.
Для полинома , p(X) = a(n)*X^n + a(n+1)*X^(n+1) + ... + a(m)*X^mгде n <= mи a(n) ≠ 0, a(m) ≠ 0мы говорим , nявляется порядок из pи mявляется степень из p.
Упрощение : можно предположить, что pимеет целочисленные коэффициенты и a(1)=1(так p(X) = X + [some integral polynomial of order 2]). В этом случае qтоже есть интегральные коэффициенты.
Цель этого упрощения - избежать проблем с числами с плавающей запятой. Однако для иллюстрации приведен неинтегральный пример.
Примеры
- Рассмотрим ряд Тейлора,
exp(x)-1 = x + x^2/2 + x^3/6 + x^4/24 + ...аln(x+1) = x - x^2/2 + x^3/3 - x^4/4 + ...затем очевидноln(exp(x)-1+1)= x. Если мы просто рассмотрим многочлены Тейлора степени 4 из этих двух функций , которые мы получаем с обозначениями снизу (см testcases)p = [-1/4,1/3,-1/2,1,0]иq = [1/24, 1/6, 1/2, 1,0]и(p∘q)(X) ≡ X mod X^5

Рассмотрим полином
p(X) = X + X^2 + X^3 + X^4. Тогдаq(X) = X - X^2 + X^3 - X^4мы получаем(p∘q)(X) = p(q(X)) = X - 2X^5 + 3X^6 - 10X^7 +...+ X^16 ≡ X mod X^5
Testcases
Здесь входные и выходные полиномы записываются в виде списков коэффициентов (с коэффициентом монома наивысшей степени первым, с постоянным членом последним):
p = [4,3,2,0]; q=[0.3125,-.375,0.5,0]
Интегральные тестовые случаи:
p = [1,0]; q = [1,0]
p = [9,8,7,6,5,4,3,2,1,0]; q = [4862,-1430,429,-132,42,-14,5,-2,1,0]
p = [-1,3,-3,1,0]; q = [91,15,3,1,0]