斯特林数的基础性质与斯特林反演的初步入门
前言
这篇博客仅介绍定义、性质等基础的理论知识,至于如何快速求解斯特林数之类的具体实现可能会另开博客吧。
第一类斯特林数
定义
第一类斯特林数\(S_1(n,m)\)表示\(n\)个有区别的小球拼成\(m\)个环(无空)的方案数。
递推式
\[S_1(n,m)=S_1(n-1,m-1)+(n-1)\times S_1(n-1,m)
\]
无非是两种情况:
- 新增一个环。
- 加入到原先的一个环中。注意放在不同球之前是不同的,因此系数是\(n-1\)。
重要性质\(1\)
\[n!=\sum_{i=0}^nS_1(n,i)
\]
考虑一个排列可以分为若干置换环。
我们可以把第一类斯特林数中的环理解成置换,全排列和斯特林数就一一对应了。
重要性质\(2\)
\[x^{\underline{n}}=\sum_{i=0}^nS_1(n,i)\times (-1)^{n-i}\times x^i\\
x^{\bar{n}}=\sum_{i=0}^n S_1(n,i)\times x^i
\]
考虑归纳法证明,这里以第一个式子为例:
\[\begin{align}
x^{\underline{n+1}}&=(x-n)x^{\underline{n}}\\
&=x\sum_{i=0}^nS_1(n,i)\times(-1)^{n-i}\times x^i-n\sum_{i=0}^nS_1(n,i)\times (-1)^{n-i}\times x^i\\
&=\sum_{i=1}^{n+1}S_1(n,i-1)\times(-1)^{n-i+1}x^i+n\sum_{i=0}^{n+1}S_1(n,i)\times(-1)^{n-i+1}\times x^i\\
&=(\sum_{i=1}^{n+1}(S_1(n,i-1)+n\times S_1(n,i))\times(-1)^{(n+1)-i}\times x^i)+(S_1(n,0)\times(-1)^{n+1}\times x^0)\\
&=\sum_{i=0}^{n+1}S_1(n+1,i)\times(-1)^{(n+1)-i}\times x^i
\end{align}
\]
第二类斯特林数
定义
第二类斯特林数\(S_2(n,m)\)表示\(n\)个有区别的小球放入\(m\)个无区别的盒子(无空)的方案数。
递推式
\[S_2(n,m)=S_2(n-1,m-1)+m\times S_2(n-1,m)
\]
同样可以分成两种情况:
- 新增一个盒子。
- 加入到原先的一个盒子中。注意这就是和第一类斯特林数的区别了,它的系数是\(m\)。
重要性质
\[m^n=\sum_{i=0}^mS_2(n,i)\times i!\times C(m,i)=\sum_{i=0}^mS_2(n,i)\times m^{\underline{i}}
\]
考虑\(m^n\)就是把\(n\)个有区别的小球放入\(m\)个有区别的盒子(可以为空)的方案数。
那么我们首先枚举非空盒子数\(i\),把\(n\)个球放入\(i\)个盒子中,最后给这些盒子标个号,就对应起来了。
组合表示
\[S_2(m,n)=\frac1{m!}\sum_{k=0}^m(-1)^k\times C(m,k)\times (m-k)^n
\]
如果我们先给盒子标上号,并假设可以存在空盒子,答案就应该是\(m^n\)。
然后我们容斥,枚举\(k\)表示至少有多少空盒子,就可以计算出所有盒子不为空的方案数。
最后乘上一个\(\frac1{m!}\),把有标号转回无标号。
自然数幂和
第二类斯特林数和自然数幂和有着重要关系。
推一推式子:
\[\begin{align}
\sum_{i=0}^n i^k&=\sum_{i=0}^n\sum_{j=0}^kS_2(k,j)\times i^{\underline{j}}\\
&=\sum_{j=0}^kS_2(k,j)\sum_{i=0}^ni^{\underline{j}}\\
&=\sum_{j=0}^kS_2(k,j)j!\sum_{i=0}^nC_i^j\\
&=\sum_{j=0}^kS_2(k,j)j!C_{n+1}^{j+1}\\
\end{align}
\]
斯特林反演
定义
\[f(n)=\sum_{k=0}^nS_2(n,k)g(k)\Leftrightarrow g(n)=\sum_{k=0}^n(-1)^{n-k}S_1(n,k)f(k)
\]
所需性质
总结:
\[x^{\underline{n}}=\sum_{i=0}^nS_1(n,i)(-1)^{n-i}x^i\\
x^{\bar{n}}=\sum_{i=0}^nS_1(n,i)x^i\\
m^n=\sum_{i=0}^nS_2(n,i)\times m^{\underline{i}}
\]
补充:
\[x^{\underline{n}}=(-1)^n(-x)^{\bar{n}}\\
x^{\bar{n}}=(-1)^n(-x)^{\underline{n}}
\]
前置:反转公式
\[\sum_{k=m}^n(-1)^{n-k}S_1(n,k)S_2(k,m)=[m=n]\\
\sum_{k=m}^n(-1)^{n-k}S_2(n,k)S_1(k,m)=[m=n]
\]
反转公式\(1\):
\[\begin{align}
m^{\underline{n}}&=\sum_{i=0}^nS_1(n,i)(-1)^{n-i}m^i\\
&=\sum_{i=0}^nS_1(n,i)(-1)^{n-i}\sum_{j=0}^iS_2(i,j)m^{\underline{j}}\\
&=\sum_{i=0}^nm^{\underline{i}}\sum_{j=i}^n(-1)^{n-j}S_1(n,j)S_2(j,i)
\end{align}
\]
反转公式\(2\):
\[\begin{align}
m^{n}&=\sum_{i=0}^nS_2(n,i)m^{\underline{i}}\\
&=\sum_{i=0}^nS_2(n,i)(-1)^i(-m)^{\bar{i}}\\
&=\sum_{i=0}^nS_2(n,i)(-1)^i\sum_{j=0}^iS_1(i,j)(-m)^{j}\\
&=\sum_{i=0}^nm^{i}\sum_{j=i}^n(-1)^{i-j}S_2(n,j)S_1(j,i)
\end{align}
\]
斯特林反演证明
已知:
\[g(n)=\sum_{k=0}^n(-1)^{n-k}S_1(n,k)f(k)
\]
证明:
\[\begin{align}
f(n)&=\sum_{k=0}[k=n]f(k)\\
&=\sum_{k=0}^n\sum_{j=k}^nS_2(n,j)S_1(j,k)(-1)^{j-k}f(k)\\
&=\sum_{k=0}^nS_2(n,k)\sum_{j=0}^k(-1)^{k-j}S_1(k,j)f(j)\\
&=\sum_{k=0}^nS_2(n,k)g(k)
\end{align}
\]
后记
例题什么的,先坑着吧。。。
待到再迷茫时回头望,所有脚印会发出光芒