伯努利数
- 【百度百科:里面有很多应用】
定义与公式
我们常用 B i B_i Bi定义第 i i i个伯努利数。
生成函数定义方式:
z
e
z
−
1
=
∑
n
=
0
∞
B
n
z
n
n
!
\frac{z}{e^z-1}=\sum\limits_{n=0}^\infty B_n\frac{z^n}{n!}
ez−1z=n=0∑∞Bnn!zn
这里的
z
∈
C
z\in C
z∈C(
C
C
C为复数域)
由于伯努利数是指数型函数的母函数,所以我们对
e
x
e^x
ex进行泰勒展开即可得到。
前
9
9
9项伯努利数:
B
0
=
1
B
1
=
−
1
2
B
2
=
1
6
B
3
=
0
B
4
=
−
1
30
B
5
=
0
B
6
=
1
42
B
7
=
0
B
8
=
−
1
30
B
9
=
0
B_0=1\ \ \ B_1=-\frac{1}{2}\ \ \ B_2=\frac{1}{6}\ \ \ B_3=0\ \ \ B_4=-\frac{1}{30} \\ B_5=0\ \ \ B_6=\frac{1}{42}\ \ \ B_7=0\ \ \ B_8=-\frac{1}{30}\ \ \ B_9=0
B0=1 B1=−21 B2=61 B3=0 B4=−301B5=0 B6=421 B7=0 B8=−301 B9=0
我们不难发现对于 B n B_n Bn,当 B n B_n Bn为奇数且不为 1 1 1时, B n = 0 B_n=0 Bn=0
其中有些时候定义 B 1 = 1 2 B_1=\frac{1}{2} B1=21,那么对应的生成函数只需改为 z e z e z − 1 \frac{ze^z}{e^z-1} ez−1zez即可。
递归定义方式:
B
n
=
[
m
=
0
]
−
∑
k
=
0
m
−
1
(
m
k
)
B
k
m
−
k
+
1
B_n=[m=0]-\sum\limits_{k=0}^{m-1}\tbinom{m}{k}\frac{B_k}{m-k+1}
Bn=[m=0]−k=0∑m−1(km)m−k+1Bk
边界为
B
0
=
1
B_0=1
B0=1,
[
m
=
0
]
[m=0]
[m=0]表示当
m
=
0
m=0
m=0时为
1
1
1,否则为
0
0
0。
简单应用
- 自然数幂的前缀和
∑ i = 1 n i k = 1 k + 1 ∑ i = 1 k + 1 C k + 1 i B k + 1 − i ( n + 1 ) i \sum_{i=1}^ni^k=\frac{1}{k+1}\sum_{i=1}^{k+1}C_{k+1}^iB_{k+1-i}(n+1)^i i=1∑nik=k+11i=1∑k+1Ck+1iBk+1−i(n+1)i
- 特殊的公式
∑ k = 0 n C n + 1 k B k = 0 \sum_{k=0}^{n}C_{n+1}^kB_k=0 k=0∑nCn+1kBk=0
B n = − 1 n + 1 ( C n + 1 0 B 0 + C n + 1 1 + ⋯ + C n + 1 n − 1 B n − 1 ) B_n=-\frac{1}{n+1}(C_{n+1}^0B_0+C_{n+1}^{1}+\cdots +C_{n+1}^{n-1}B_{n-1}) Bn=−n+11(Cn+10B0+Cn+11+⋯+Cn+1n−1Bn−1)
我们将生成函数的公式继续变形得到:
=
z
∑
i
=
1
∞
z
i
i
!
=
1
∑
i
=
0
∞
z
i
(
i
+
1
)
!
=\frac{z}{\sum_{i=1}^{\infty}\frac{z^i}{i!}} \\ =\frac{1}{\sum_{i=0}^{\infty}\frac{z^i}{(i+1)!}}
=∑i=1∞i!ziz=∑i=0∞(i+1)!zi1
最后就变成了多项式
∑
i
=
0
∞
z
i
(
i
+
1
)
!
\sum_{i=0}^{\infty}\frac{z^i}{(i+1)!}
∑i=0∞(i+1)!zi的逆元了,用多项式求逆(NTT)即可在
O
(
n
l
o
g
n
)
O(nlogn)
O(nlogn)的时间内预处理前
n
n
n项。
参考:
-
【Picks的blogOrz%%%%】
-
【好的博客:Orz%%%】
-
【BLOG】
-
【BLOG】
-
【BLOG】