伯努利數與自然數冪和
眾所周知
\[1 + 1 + ... + (n-1)^0 = n \]
\[1 + 2 + ... + (n-1) = \dfrac{n(n-1)}{2} = \dfrac{1}{2}n^2-\dfrac{n}{2} \]
\[1^2+2^2+...+(n-1)^2=\dfrac{(n-1)n(2n-1)}{6}=\dfrac{1}{3}n^3 - \dfrac{1}{2}n^2 + \dfrac{1}{6}n \]
查閱資料知:
\[1^3+2^3+...+(n-1)^3 = \dfrac{1}{4}n^4 - \dfrac{1}{2}n^3 + \dfrac{1}{4}n^2 \]
我們設自然數冪和:
\[S_m(n)=\sum_{i=0}^{n-1}i^m \]
將其用關於 \(n\) 的 \(m+1\) 次多項式表示,並在其中定義伯努利數 \(B_i\):(證明見最后)
\[\Large S_m(n)=\dfrac{1}{m+1} \sum_{i=0}^{m} {m+1 \choose i} B_in^{m+1-i} \]
將 \(n=1\) 代入得:
\[B_0 = 1 \]
\[\sum_{i=0}^{m} {m+1 \choose i} B_i = 0,m>0 \]
(其中 \(B_0 = 1\) 是因為 \(S_0(1) = 0^0 = 1\))
即:
\[\Large \sum_{i=0}^{m} {m+1 \choose i} B_i = [m=0] \]
這是伯努利數的遞歸定義式。
伯努利數的快速求法
做一些轉化:
\[\sum_{i=0}^{m-1} {m \choose i} B_i = [m-1=0] \]
\[\sum_{i=0}^{m} {m \choose i} B_i = B_m + [m=1] \]
\[\sum_{i=0}^{m} \dfrac{B_i}{i!} * \dfrac{1}{(m-i)!} = \dfrac{B_m}{m!} + \dfrac{[m=1]}{m!} \]
發現左邊是一個 \(\{B_i\}\) 的 EGF 和 \(\{1,1,1,...\}\) 的 EGF 的卷積的 \(x^m\) 的系數,右邊是 \(\{B_i\}\) 的EGF 再加上 \(x\) 的 \(x^m\) 系數。
即:
\[B(x)e^x=B(x)+x \]
\[\Large B(x)=\frac{x}{e^x-1} \]
這是伯努利數的生成函數定義式。可以多項式求逆加速遞推 \(B(x)\),進而可以快速求 \(S_m(n)\)
用伯努利數計算自然數冪和的正確性
考慮證明:
\[S_m(n)=\dfrac{1}{m+1} \sum_{i=0}^{m} {m+1 \choose i} B_in^{m+1-i} \]
對於一個數 \(n\) 固定的情況,我們設 \(F(x)\) 表示 \(S_k(n)\) 的指數生成函數,即 \(\sum\dfrac{S_i(n)}{i!}x^i\),那么有:
\[\begin{aligned} F(x)&=\sum_{i}\frac{S_i(n)}{i!}x^i\\ &= \sum_{j < n,i}\frac{j^ix^i}{i!}\\ &= \sum_{j < n}e^{jx}\\ &= \frac{1-e^{nx}}{1-e^x}\\ &= \frac{x}{e^x-1} * \frac{e^{nx}-1}{x}\\ &= B(x) * \sum_{i > 0}\frac{(nx)^i}{x * i!}\\ &= B(x) * \sum_{i}\frac{n^{i+1}}{(i+1)!}x^i \end{aligned}\]
設 \(G(x)=\sum_{i}\dfrac{n^{i+1}}{(i+1)!}x^i\),則 \([x^i]G(x)=\dfrac{n^{i+1}}{(i+1)!}\)。於是有:
\[\begin{aligned} \ [x^k]F(x)&=[x^k](B(x)G(x))\\ S_k(n)/k!&=\sum_{i=0}^k\frac{B_i}{i!} * \frac{n^{k-i+1}}{(k-i+1)!}\\ S_k(n)&=\sum_{i=0}^k\frac{k!}{i!(k-i+1)!}B_in^{k-i+1}\\ S_k(n)&= \sum_{i=0}^k \frac{{k + 1 \choose i}}{k+1}B_in^{k-i+1}\\ S_k(n)&= \frac{1}{k+1} \sum_{i=0}^k{k + 1 \choose i}B_in^{k-i+1} \end{aligned}\]
即開頭的那個式子。
參考博客:伯努利數