伯努利数和自然数幂和
定义:\(B(x)=\sum_n\frac{B_nx^n}{n!}=\frac{x}{e^x-1}\)
易得递推式:\(B_0=1,\sum_{i=0}^n\binom{n+1}{i}B_i=0\)。
自然数幂和:\(f(n,k)=\sum_{i=1}^{n} i^k\)。
定义\(n\)相同的自然数幂和的EGF:\(F_n(x)=\sum_{k} f(n,k)\frac{x^k}{k!}\)
\[F_n(x)=\sum_{k} f(n,k)\frac{x^k}{k!}\\
=\sum_{k} \frac{x^k}{k!} \sum_{i=1}^n i^k\\
=\sum_{i=1}^n \sum_k \frac{(ix)^k}{k!}\\
=\sum_{i=1}^n e^{ix}\\
=\frac{e^{(n+1)x}-e^x}{e^x-1}
\]
\[=B(x)e^x(e^{nx}-1)\frac{1}{x}\\
令:B'(x)=B(x)e^x=x+B(x)\\
(B'只是个符号和求导无关)\\
F_n(x)=B'(x)(e^{nx}-1)\frac{1}{x}\\
f(n,k)=k!\sum_{i=0}^{k}\frac{n^{k+1-i}}{(k+1-i)!}\frac{B'_i}{i!}\\
=\frac{1}{k+1}\sum_{i=0}^{k}\binom{k+1}{i}n^{k+1-i}B'_{i}
\]
注意这里最后用的\(B'\):实际上伯努利数分\(B^+\)和\(B^-\),前面讲的是\(B^-\),这里的\(B'\)就是\(B^+\),两者的区别在于\(B_1=\pm\frac{1}{2}\)。
另外,如果把自然数下标从\(0\)开始(即\(f(n,k)=\sum_{i=0}^{n} i^k\)),类似地推,可以得到\(f(n,k)=\frac{1}{k+1}\sum_{i=0}^k\binom{k+1}{i}(n+1)^{k+1-i}B_i\)。
总结:
和另外几个常用的推自然数幂和的方法比较:
- 第二类斯特林数:
- 优点:容易通过组合意义考虑,即使忘记式子也容易重新推出;可以不用除法。
- 缺点:朴素方法需要\(O(k^2)\)预处理斯特林数,如果\(k\)相同做到\(O(k\lg k)\)要写复杂的多项式做法求出;式子中含有下降幂,并不直接是多项式形式,不方便扩展。
- 拉格朗日插值:
- 优点:预处理速度快。
- 缺点:一般是直接将\(n\)带入拉格朗日插值的式子中,不是直接生成多项式,若要生成多项式要多点插值(?),扩展性弱。
- 伯努利数:
- 优点:可以直接生成关于\(n\)的多项式形式;某种程度上统一了对于不同的\(k\),自然数幂和关于\(n\)的函数,扩展性强。
- 缺点:相对而言不是那么容易考场推出。