生成函数与多项式基础
手动转载于黄神的blog: https://notes.sshwy.name/Math/Polynomial/Polynomial/
普通生成函数
OGF:
[F(x)=sum_{igeq 0} a_ix^i
]
[sum_{igeq 0 }x^i = frac{1}{1-x}
]
[sum_{igeq 0} a^i x^i = frac{1}{1-ax}
]
牛顿二项式定理
记结论就好。
[(1+x)^alpha =sum_{kge 0} {alphachoose k} x^k
]
卡特兰数生成函数
[C(x)=sum_{ige 0} h(i)x^i\=1+sum_{ige 1} sum_{j=0}^{i-1} h(j)x^jh(i-j-1)x^{i-j-1}x\=1+xsum_{jge 0}h(j)x^j sum_{ige 0 }h(i)x^i\=1+xC^2(x)
]
[C(x)=frac{1pmsqrt{1-4x}}{2x}
]
正根不收敛,则(C(x)=frac{1-sqrt{1-4x}}{2x})
[(1-4x)^{frac1 2}=sum_{igeq 0 }{frac 1 2choose i}(-4x)^i\=1+sum_{i ge 1 }frac{{frac1 2}^underline i}{i!}(-4x)^i
]
化简得到(C(x)=sum_{ige 0}frac{1}{i+1}{2ichoose i}x^i)
BZOJ3028 食物
化简得到(frac{x}{(1-x)^4})
用牛顿二项式定理化简:
[(1-x)^{-4} =sum{{4+i-1} choose i}x^i
]
[frac x {(1-x)^4} = sum _{i geq 1} {2+i choose 3} x^i
]
常见导数
[(x^n)'=nx^{n-1}\(e^x)'=e^x\(a^x)'=e^{xln a}ln a\(ln x)=frac 1 x
]
多项式求导/积分
就是往前/后移1位,乘上一个系数。
积分往后移,除以(i+1),求导往前移,乘上i
泰勒展开
[f(x)=sum_{nge 0 }frac {f^{(n)}(x_0)}{n!} (x-x_0)^n
]
多项式ln
[ln(1-x)=-sum_{ige 1}frac{x^i}{i}
]
[ln(1-F(x))=-sum_{i ge 1}frac{F^i(x)}{i}
]
[(ln F(x))'=frac{dln F(x)}{dx}
]
根据链式求导法则,
[=frac{dln F(x)}{dF(x)}frac{dF(x)}{dx}=frac{1}{F(x)}F'(x)=frac{F'(x)}{F(x)}
]
两边积分,
[ln F(x)=int frac{F'(x)}{F(x)}dx
]
于是可以用多项式求逆计算。总复杂度(nlog n),求逆+乘法
多项式牛顿迭代
[F_0=F mod x^{leftlceilfrac n 2
ight
ceil}\F=F_0-frac {G(F_0(x))}{G'(F_0(x))}
]
证明是求(G(F(x)))在(F_0(x))处的泰勒展开。
多项式开根/exp
用牛迭推出来的东西,看板子吧...