下降冪多項式
下降冪的定義
下降冪\(\text{Falling Factorial}\)
下降冪多項式\(\text{Falling Factorial Polynomial}\)下面簡稱\(\text{FFP}\)
\(x\)的\(n\)階下降冪\(x^{\underline n}=\prod_0^{n-1}(x-i) = \frac{x!}{(x-n)!}\)
一個下降冪多項式\(F(x)=\sum a_ix^{\underline i}\)
快速求解\(x^{\underline n}\)的展開形式
\(x^{\underline{n}}=x(x-1)\cdots (x-n+1)\)
考慮倍增求解,假設已知\(F(x)=x^{\underline{n}}\)
要求\(G(x)=x^{\underline{2n}}\)
顯然\(G(x)=F(x)F(x-n)\)
而\(\begin{aligned} F(x-n)=\sum_{i=0}^{n} [x^i]F(x) \cdot (x-n)^i\end{aligned}\)
用一次卷積處理這個二項展開即可
復雜度為\(O(n\log n)\)
FFP與其點值的\(\text{EGF}\)
點值的\(\text{EGF}\)為\(\begin{aligned} EGF(F(x))=\sum_0^{\infty}\frac{F(i)x^i }{i!}\end{aligned}\)
\(\begin{aligned}EGF(F(x))=\sum_{i=0}^{\infty}\frac{x^i}{i!}\sum_{j=0}^{n} \frac{i!}{(i-j)!}\cdot F_j\end{aligned}\)
\(\begin{aligned}EGF(F(x))=\sum_{i=0}^{\infty}x^i \sum_{j=0}^{n} \frac{1}{(i-j)!}\cdot F_j\end{aligned}\)
換一下順序
\(\begin{aligned}EGF(F(x))=\sum_{i=0}^{n} F_i \sum_{j=i}^{\infty}\frac{1}{(j-i)!} x^j\end{aligned}\)
\(\begin{aligned}EGF(F(x))=\sum_{i=0}^{n} F_i \cdot x^i \sum_{j=0}^{\infty}\frac{1}{j!} x^j\end{aligned}\)
\(\begin{aligned}EGF(F(x))=\sum_{i=0}^{n} F_i \cdot x^i e^x\end{aligned}\)
那么直接和\(e^x\)卷積就可以得到\(F(x)\)的\(\text{EGF}\)
Tips: \(e^x\)直接帶入展開式\(\begin{aligned} e^{ax}=\sum_0^{\infty}\frac{(ax)^i}{i!} \end {aligned}\)
如果要從\(\text{EGF}\)得到\(F(x)\)
\(\begin{aligned}EGF(F(x))=\sum_{i=0}^{n} F_i \cdot x^ie^x\end{aligned}\)
\(\begin{aligned} F_i=\frac{EGF(F(x))}{x^ie^x} \end{aligned}\)
那么就直接卷上\(e^{-x}\)就可以了
即可以通過簡單卷積完成\(\text{FFP} \Longleftrightarrow \text{EGF}\)的轉化
FFP卷積
求出\(\text{EGF}\),然后點值對應相乘(注意乘完之后要補上一個\(i!\)),最后再反求\(F(x)\)
Tips: 下面的知識恐怕需要先學多點求值/快速插值
多項式轉FFP
帶入\(0,\cdots n-1\),多點求值得到\(\text{FFP}\)點值的\(EGF\),然后求得到\(\text{FFP}\)
FFP轉多項式
求出\(F(x)\)的\(EGF\),然后帶入前\(n\)項的值,快速插值回來即可
由於\(x_i\)是連續的,所以不需要再多點求值求解\(\prod\frac{1}{x_i-x_j}\),可以直接階乘得到
關於上升冪
\(x^{\overline n}=\frac{(x+n-1)!}{(x-1)!}=x(x+1)(x+2)\cdots(x+n-1)\)
容易發現的是\(x^{\overline n}=(-x)(-((-x)-1))(-((-x)-2))\cdots (-(-x-(n-1)))=(-1)^n (-x)^{\underline{n}}\)
所以上升冪多項式與普通多項式的轉化 可以認為是上面的點值變成了\(0,-1,\cdots ,-(n-1)\),奇數項系數取反