众所周知 Min25 给出了这一问题的一个可以 Θ ( k + log n ) \Theta(k + \log n) Θ(k+logn) 计算的式子。但是其变形方法有点匪夷所思,故经尝试给出一种比较平凡的推导方法:
∑ i ( n i ) i k = ∑ i ( n i ) ∑ j ≤ k j ! ( i j ) { k j } = ∑ j ≤ k j ! { k j } ( n j ) 2 n − j = ∑ j ≤ k ( ∑ s ( j s ) s k ( − 1 ) j − s ) ( n j ) 2 n − j = ∑ s + t ≤ k ( s + t s ) s k ( − 1 ) t ( n s + t ) 2 n − s − t = ∑ s s k 2 n − s ∑ t ≤ k − s ( s + t s ) ( − 1 ) t ( n s + t ) 2 − t = ∑ s s k 2 n − s ∑ t ≤ k − s ( n s ) ( − 1 ) t ( n − s t ) 2 − t = ∑ s ( n s ) s k 2 n − s ∑ t ≤ k − s ( n − s t ) ( − 1 2 ) t \begin{aligned} &\quad \sum_i \binom n i i^k \\ &= \sum_i \binom n i \sum_{\color{red}j\le k} j!\binom ij {k\brace j}\\ &= \sum_{j\le k} j!{k\brace j} \binom nj 2^{n-j}\\ &= \sum_{j\le k} \left(\sum_s \binom js s^k (-1)^{j-s}\right) \binom nj 2^{n-j}\\ &= \sum_{s+t\le k} \binom {s+t} s s^k (-1)^t \binom n{s+t} 2^{n-s-t}\\ &= \sum_{s} s^k 2^{n-s} \sum_{t\le k-s} \binom{s+t}s (-1)^t \binom n{s+t} 2^{-t}\\ &= \sum_{s} s^k 2^{n-s} \sum_{t\le k-s} \binom{n}s (-1)^t \binom {n-s}{t} 2^{-t}\\ &= \sum_{s} \binom{n}ss^k 2^{n-s} \sum_{t\le k-s} \binom {n-s}{t} \left(-\frac 12\right)^{t} \end{aligned} i∑(in)ik=i∑(in)j≤k∑j!(ji){jk}=j≤k∑j!{jk}(jn)2n−j=j≤k∑(s∑(sj)sk(−1)j−s)(jn)2n−j=s+t≤k∑(ss+t)sk(−1)t(s+tn)2n−s−t=s∑sk2n−st≤k−s∑(ss+t)(−1)t(s+tn)2−t=s∑sk2n−st≤k−s∑(sn)(−1)t(tn−s)2−t=s∑(sn)sk2n−st≤k−s∑(tn−s)(−21)t
这里重要的是 f ( i , j ) = ∑ t ≤ i ( j t ) r t f(i,j) = \sum_{t\le i}\binom j t r^t f(i,j)=∑t≤i(tj)rt 在一条斜线上,而这个式子的上下左右移动都是可以 Θ ( 1 ) \Theta(1) Θ(1) 计算的。
而另一个重要的事情是:一切的起点在于斯特林数的表示本身带入任何值都是可以计算的,但是去掉等于零的部分就让计算量减小了。