LL黑科技:如何用EGF做伯努利数做的事情
\(n^m=e^{nx}[x^m] \times m!\),这么做的好处是指数固定。
\(=\sum_{i=0}^n e^{ix} [x^m] \times m!\)
\(=\frac{e^{(n+1)x} - 1}{e^x-1} [x^m] \times m!\)
上下同除一个\(x\)先,多项式求逆就可以做了。
如果只求一个的话,不如直接插值。
观察式子,首先对一个固定的\(n\),可以快速求出\([x^{1..m}]\),也就是\(1-m\)次和都算出来了。
再看,当\(m\)固定时,对一个\(n\),答案是:
设\(F=\frac{1}{(e^x-1)/x}\)
\(F(n,m)=\sum_{i=0}^m (e^{(n+1)x}-1)/x [x^i] \times F[x^{m-i}] * m!\)
\(=\sum_{i=0}^m (n+1)^{i+1} / (i+1)! \times F[x^{m-i}] * m!\)
相当于一个\(n+1\)有关的多项式,每一项的系数都得到了,多项式多点求值即可计算多个\(n\)的答案。
转载注意标注出处:
转自Cold_Chair的博客+原博客地址