「学习笔记」斯特林数

第二类斯特林数

组合意义

\(n\) 个元素划分到 \(k\) 个非空集合中的方案数,记作 \(\displaystyle {n\brace k}\)\(S(n,k)\)

特殊地,定义 \(\displaystyle {n\brace 0}=[n=0],{n\brace n}=1\)

重要恒等式

Formula 1.2.1:

\[{n\brace k}={n-1\brace{k-1}}+k{n-1\brace{k}} \]

证明:若将第 \(n\) 个元素单独划分入一个集合,那么需要将前 \(n-1\) 个元素划分到 \(k-1\) 个非空集合中;若不单独将第 \(n\) 个元素划分入一个集合,那么需要将前 \(n-1\) 个元素划分到 \(k\) 个非空集合中,并将第 \(n\) 个元素划入这 \(k\) 个集合中的任意一个,根据加法原理与乘法原理可知 Formula 1.1 成立。

Formula 1.2.2:

\[{n\brace k}=\frac{1}{k!}\sum_{i=0}^{k}{k\choose i}(-1)^{k-i}i^n \]

证明:考虑用两种不同的方式计数将 \(n\) 个元素划分到 \(k\)有标号且可以为空的集合的方案数。

  • 每个元素都可以划入 \(k\) 个集合中的任意一个,根据乘法原理,方案数为 \(k^n\)

  • 钦定不为空的集合有 \(i\) 个,再将 \(n\) 个元素划分入这 \(i\) 个非空集合中,根据第二类斯特林数的定义及乘法原理,方案数为 \(\displaystyle \sum_{i=0}^{k}{k\choose i}{n\brace i}i!\)

故有

\[k^n=\sum_{i=0}^{k}{k\choose i}{n\brace i}i! \]

二项式反演得

\[{n\brace k}k!=\sum_{i=0}^k{k\choose i}(-1)^{k-i}i^n\iff{n\brace k}=\frac{1}{k!}\sum_{i=0}^{k}{k\choose i}(-1)^{k-i}i^n \]

这个式子还能导出自然数幂和

\[\begin{aligned}\sum_{k=0}^nk^p&=\sum_{k=0}^n\sum_{i=0}^k{k\choose i}{p\brace i}i!\\&=\sum_{i=0}^n{p\brace i}i!\sum_{k=0}^n{k\choose i}\\&=\sum_{i=0}^p{p\brace i}i!{n+1\choose i+1}\end{aligned} \]

为了使其更加简洁,设 \(S^{\#}(p,k)\) 为将 \(p\) 元素集合划分到 \(k\)有标号的非空集合的方案数,显然,\(S^{\#}(p,k)=k!S(p,k)\),于是

\[\sum_{k=0}^{n-1}k^p=\sum_{i=1}^{p+1}S^{\#}(p,i-1){n\choose i} \]

普通幂转上升/下降幂

Formula 1.3.1:

\[x^n=\sum_{k=0}^n{n\brace k}x^{\underline{k}} \]

Formula 1.3.2:

\[x^n=\sum_{k=0}^n{n\brace k}(-1)^{n-k}x^{\overline{k}} \]

证明:先证 Formula 1.3.1,考虑归纳。

\(n=0\) 时显然成立;

假设对某个 \(n\) Formula 1.3.1 成立,那么

\[\begin{aligned}\sum_{k=0}^{n+1}{{n+1}\brace k}x^{\underline{k}}&=\sum_{k=0}^{n+1}\left(k{n\brace k}+{n\brace k-1}\right)x^{\underline{k}}\\&=\sum_{k=0}^nk{n\brace k}x^{\underline{k}}+\sum_{k=0}^{n}{n\brace k}x^{\underline{k+1}}\\&=\sum_{k=0}^n((x-k)+k){n\brace k}x^{\underline{k}}\\&=x\sum_{k=0}^n{n\brace k}x^{\underline{k}}\\&=x\cdot x^n=x^{n+1}\end{aligned} \]

由第一数学归纳法原理可知 Formula 1.3.1 对任意自然数 \(n\) 成立。

注意到

\[x^{\overline{n}}=-(-x)^{\underline{n}} \]

将其代入 Formula 1.3.1 可得 Formula 1.3.2,证毕。

第一类斯特林数

组合意义

\(n\) 个元素划分成 \(k\) 个圆排列的方案数,记作 \(\displaystyle{n\brack k}\)\(s(n,k)\)

特殊地,定义 \(\displaystyle {n\brack 0}=[n=0],{n\brack n}=1\)

递推公式

\[{n\brack k}={{n-1}\brack{k-1}}+(n-1){{n-1}\brack k} \]

证明:若将第 \(n\) 个元素单独划分入一个圆排列,那么需要将前 \(n-1\) 个元素划分成 \(k-1\) 个圆排列;若不单独将第 \(n\) 个元素划分入一个圆排列,那么需要将前 \(n-1\) 个元素划分成 \(k\) 个圆排列,并将第 \(n\) 个元素插入到前 \(n-1\) 个元素的任意一个之前,根据加法原理与乘法原理可知上式成立。

上升幂/下降幂转普通幂

Formula 2.3.1

\[x^{\overline{n}}=\sum_{k=0}^n{n\brack k}x^k \]

Formula 2.3.2

\[x^{\underline{n}}=\sum_{k=0}^n{n\brack k}(-1)^{n-k}x^k \]

证明:先证 Formula 2.3.1,考虑归纳:

\(n=0\) 时显然成立;

假设对于某个 \(n\) Formula 2.3.1 成立,那么

\[\begin{aligned}\sum_{k=0}^{n+1}{n+1\brack k}x^k&=\sum_{k=0}^{n+1}\left({n\brack k-1}+n{n\brack k}\right)x^k\\&=\sum_{k=0}^n{n\brack k}x^{k+1}+n\sum_{k=0}^n{n\brack k}x^k\\&=(x+n)\sum_{k=0}^n{n\brack k}x^k\\&=(x+1)x^{\overline{n}}=x^{\overline{n+1}}\end{aligned} \]

由第一数学归纳法原理可知 Formula 2.3.1 对任意自然数 \(n\) 成立。

同理,将 \(x^{\overline{n}}=-(-x)^{\underline{n}}\) 代入 Formula 2.3.1 可得 Formula 2.3.2,证毕。

斯特林反演

前文我们提到普通幂和下降幂可以通过两类斯特林数相互转换

\[x^n=\sum_{k=0}^n{n\brace k}x^{\underline{k}} \]

\[x^{\underline{n}}=\sum_{k=0}^n{n\brack k}(-1)^{n-k}x^k \]

这两个对称的式子启发我们做进一步的思考。

考虑域 \(\mathbb F\) 上的至多 \(n\) 次多项式构成的线性空间 \(\mathbb F[x]\),显然,\((1,x,x^2,\cdots,x^n)\)\((1,x,x^{\underline{2}},\cdots,x^{\underline{n}})\) 都是它的

而第一、第二类斯特林数分别给出了这两个基之间的过渡矩阵

\[(1,x,x^2,\cdots,x^n)=(1,x,x^{\underline{2}},\cdots,x^{\underline{n}})\begin{pmatrix}1&\cdots&0&\cdots&0\\\vdots&&\vdots&&\vdots\\S(0,j)&\cdots&S(i,j)&\cdots&S(n,j)\\\vdots&&\vdots&&\vdots\\S(0,n)&\cdots&S(i,n)&\cdots&S(n,n)\end{pmatrix} \]

\[(1,x,x^{\underline{2}},\cdots,x^{\underline{n}})=(1,x,x^2,\cdots,x^n)\begin{pmatrix}1&\cdots&0&\cdots&0\\\vdots&&\vdots&&\vdots\\(-1)^js(0,j)&\cdots&(-1)^{i-j}s(i,j)&\cdots&(-1)^{n-j}s(n,j)\\\vdots&&\vdots&&\vdots\\(-1)^ns(0,n)&\cdots&(-1)^{i-n}s(i,n)&\cdots&s(n,n)\end{pmatrix} \]

这两个矩阵互为逆矩阵,根据逆矩阵的定义,有

\[\sum_{i\le k\le j}(-1)^{k-i}{k\brack i}{j\brace k}=[i=j] \]

\[\sum_{i\le k\le j}(-1)^{j-k}{k\brace i}{j\brack k}=[i=j] \]

接下来,考虑这两个基下的坐标变换,设

\[f(x)=\sum_{i=0}^na_ix^i=(1,x,\cdots,x^n)\begin{pmatrix}a_0\\a_1\\\vdots\\a_n\end{pmatrix} \]

\[f(x)=\sum_{i=0}^nb_ix^{\underline{i}}=(1,x,\cdots,x^{\underline{n}})\begin{pmatrix}b_0\\b_1\\\vdots\\b_n\end{pmatrix} \]

那么有

\[a_i=\sum_{j=0}^i(-1)^{i-j}{i\brack j}b_j \]

\[b_i=\sum_{j=0}^i{i\brace j}a_j \]

这给出了斯特林反演公式

\[f_n=\sum_{i=0}^n(-1)^{n-i}{n\brack i}g_i\iff g_n=\sum_{i=0}^n{n\brace i}f_i \]

posted @ 2021-09-18 22:21  Gauss0919  阅读(93)  评论(0)    收藏  举报