斯特林数
分为第一类斯特林数和第二类斯特林数。
第一类斯特林数
其意义为把
n
n
n 个本质不同的数分到
m
m
m 个环中的圆排列方案,记为
[
n
m
]
{n\brack m}
[mn]。根据其意义,我们得到如下递推关系:
[
n
m
]
=
[
n
−
1
m
−
1
]
+
(
n
−
1
)
[
n
−
1
m
]
{n\brack m}={n-1\brack m-1}+(n-1){n-1\brack m}
[mn]=[m−1n−1]+(n−1)[mn−1]
就是说可以放到任意一个数的前面去。
对于第一类斯特林数,并没有通项公式,但是有一个与它相关的式子,在下面的斯特林反演中会用到。
第二类斯特林数
其意义为把
n
n
n 个本质不同的数分到
m
m
m 个盒子的方案数,记为
{
n
m
}
{n\brace m}
{mn}。同样我们也可以得出递推关系:
{
n
m
}
=
{
n
−
1
m
−
1
}
+
m
{
n
−
1
m
}
{n\brace m}={n-1\brace m-1}+m{n-1\brace m}
{mn}={m−1n−1}+m{mn−1}
第二类斯特林数存在通项公式:
{
n
m
}
=
∑
i
=
0
m
(
−
1
)
m
−
i
i
n
i
!
(
m
−
i
)
!
{n\brace m}=\sum_{i=0}^{m} \frac{(-1)^{m-i}i^{n}}{i!(m-i)!}
{mn}=i=0∑mi!(m−i)!(−1)m−iin
证明可以结合其实际意义容斥。
第二类斯特林数还有一个非常重要的公式,通常用来转化
k
k
k 次幂:
i
k
=
∑
j
=
0
k
(
i
j
)
{
k
j
}
j
!
i^{k}=\sum_{j=0}^{k} {i\choose j} {k\brace j} j!
ik=j=0∑k(ji){jk}j!
斯特林反演
反演形式:
g
(
n
)
=
∑
i
=
0
n
{
n
i
}
f
(
i
)
⇔
f
(
n
)
=
∑
i
=
0
n
[
n
i
]
(
−
1
)
n
−
i
g
(
i
)
g(n)=\sum_{i=0}^{n} {n\brace i}f(i) \Leftrightarrow f(n)=\sum_{i=0}^{n} {n\brack i}(-1)^{n-i} g(i)
g(n)=i=0∑n{in}f(i)⇔f(n)=i=0∑n[in](−1)n−ig(i)
首先我们需要证明一个关于第一类斯特林数的性质:
∑
i
=
0
n
[
n
i
]
x
i
=
x
n
‾
\sum_{i=0}^{n} {n\brack i}x^{i} = x^{\overline{n}}
i=0∑n[in]xi=xn
我们考虑用数学归纳法证明:
-
当 i = 0 i=0 i=0 显然成立。
-
当 i ≠ 0 i\ne 0 i=0,我们有:
x n ‾ = ( x + n − 1 ) × x n − 1 ‾ = ( x + n − 1 ) × ∑ i = 0 n − 1 [ n − 1 i ] x i = ( n − 1 ) × ∑ i = 0 n − 1 [ n − 1 i ] x i + ∑ i = 0 n − 1 [ n − 1 i ] x i + 1 = ∑ i = 0 n − 1 ( n − 1 ) × [ n − 1 i ] x i + ∑ i = 1 n [ n − 1 i − 1 ] x i = ∑ i = 0 n x i × ( ( n − 1 ) [ n − 1 i ] + [ n − 1 i − 1 ] ) = ∑ i = 0 n [ n i ] x i \begin{align} x^{\overline{n}}&=(x+n-1)\times x^{\overline{n-1}}\\ &=(x+n-1)\times \sum_{i=0}^{n-1} {n-1\brack i}x^{i}\\ &=(n-1)\times \sum_{i=0}^{n-1} {n-1\brack i}x^{i}+\sum_{i=0}^{n-1} {n-1\brack i}x^{i+1}\\ &=\sum_{i=0}^{n-1} (n-1)\times{n-1\brack i}x^{i}+\sum_{i=1}^{n} {n-1\brack i-1}x^{i}\\ &=\sum_{i=0}^{n} x^{i} \times ((n-1){n-1\brack i}+{n-1\brack i-1})\\ &=\sum_{i=0}^{n} {n\brack i}x^{i}\\ \end{align} xn=(x+n−1)×xn−1=(x+n−1)×i=0∑n−1[in−1]xi=(n−1)×i=0∑n−1[in−1]xi+i=0∑n−1[in−1]xi+1=i=0∑n−1(n−1)×[in−1]xi+i=1∑n[i−1n−1]xi=i=0∑nxi×((n−1)[in−1]+[i−1n−1])=i=0∑n[in]xi
而关于上升幂和下降幂之间存在一个关系:
x n ‾ = ( − 1 ) n ( − x ) n ‾ x^{ \overline{n}}=(-1)^{n}(-x)^{\underline{n}} xn=(−1)n(−x)n,展开即可。
同样反过来也是满足的。
我们对于
i
k
i^{k}
ik 做出如下变换:
i
k
=
∑
j
=
0
k
(
i
j
)
{
k
j
}
j
!
=
∑
j
=
0
k
{
k
j
}
i
j
‾
=
∑
j
=
0
k
{
k
j
}
(
−
1
)
j
(
−
i
)
j
‾
=
∑
j
=
0
k
{
k
j
}
(
−
1
)
j
∑
p
=
0
j
[
j
p
]
(
−
i
)
p
=
∑
p
=
0
k
i
p
∑
j
=
p
k
[
j
p
]
{
k
j
}
(
−
1
)
j
+
p
\begin{align} i^{k}&=\sum_{j=0}^{k} {i\choose j} {k\brace j} j!\\ &=\sum_{j=0}^{k} {k\brace j} i^{\underline{j}}\\ &=\sum_{j=0}^{k} {k\brace j}(-1)^{j}(-i)^{\overline{j}}\\ &=\sum_{j=0}^{k} {k\brace j}(-1)^{j}\sum_{p=0}^{j} {j\brack p}(-i)^{p}\\ &=\sum_{p=0}^{k} i^{p} \sum_{j=p}^{k} {j\brack p} {k\brace j}(-1)^{j+p}\\ \end{align}
ik=j=0∑k(ji){jk}j!=j=0∑k{jk}ij=j=0∑k{jk}(−1)j(−i)j=j=0∑k{jk}(−1)jp=0∑j[pj](−i)p=p=0∑kipj=p∑k[pj]{jk}(−1)j+p
用数学归纳法可以得出
∑
j
=
p
k
[
j
p
]
{
k
j
}
(
−
1
)
j
+
p
=
[
p
=
k
]
\sum_{j=p}^{k} {j\brack p} {k\brace j}(-1)^{j+p}=[p=k]
∑j=pk[pj]{jk}(−1)j+p=[p=k]。
那么回到反演式子:
f
(
n
)
=
∑
i
=
0
n
f
(
i
)
×
∑
j
=
i
n
[
j
i
]
{
n
j
}
(
−
1
)
j
+
i
f(n)=\sum_{i=0}^{n} f(i)\times \sum_{j=i}^{n} {j\brack i} {n\brace j}(-1)^{j+i}
f(n)=i=0∑nf(i)×j=i∑n[ij]{jn}(−1)j+i
把
{
n
j
}
{n\brace j}
{jn} 提前,于是可以发现就是
g
(
n
)
g(n)
g(n),得证。