[数学基础]组合闲谈 - 2 - Stirling 数
#1.0 第一类 Stirling 数
#1.1 定义
对于正整数 \(n,k\),定义 \(c(n,k)\) 为 \(n\) 元对称群 \(S_n\) 中恰含 \(k\) 个轮换(即可恰写成 \(k\) 个不交轮换的乘积)的置换个数(注意,不动点也看做一个轮换)。称 \(s(n,k)=(-1)^{n-k}c(n,k)\) 为第一类 \(\text{Stirling}\) 数,也常常称 \(c(n,k)\) 为无符号的第一类 \(\text{Stirling}\) 数。
置 \(c(0,0)=1\),以及当 \(n\geqslant1\) 时,\(c(n,0)=c(0,n)=0.\)
#1.2 补充点抽代
上面的定义涉及到了亿点点抽象代数的知识,这里简单讲讲。
#1.2.1 群
如果一个非空集合 \(G\) 上定义了一个二元运算 \(\circ\),满足:
- 结合律:\((a\circ b)\circ c=a\circ(b\circ c)\ (\forall\ a,b,c\in G)\);
- 存在 幺元:存在 \(e\in G\) 使得
(\(e\) 称为 \(G\) 的幺元);
- 存在 逆元:对任意的 \(a\in G\),存在 \(b\in G\) 使得
(\(b\) 称为 \(a\) 的逆元);
则称 \(G\) 关于运算 \(\circ\) 构成一个群,记为 \((G,\circ)\),或简记为 \(G.\)
注意,群 \(G\) 中不一定满足交换律,如果群 \(G\) 满足交换律:
则称 \(G\) 为交换群或 \(\text{Abel}\) 群。
#1.2.2 全变换群
这里的部分可以结合下面的 对称群 进行理解。
设 \(M\) 是一个非空集合,\(M\) 到自身的双射的全体对于映射的乘法(即复合)构成一个群,叫做 \(M\) 的全变换群,记为 \(S(M).\)
#1.2.3 对称群
设 \(M\) 是含有 \(n\) 个元素的集合,\(M\) 的全变换群 \(S(M)\) 称为 \(n\) 级对称群,记为 \(S_n.\)
\(S_n\) 的元素称为 \(n\) 元置换。
举个例子,我们设 \(M=\{1,2,\cdots,n\}\),任一置换 \(\sigma\) 可以用列表的方式表示,即:如果 \(\sigma(j)=\sigma_j\),则记
可以看出,\(\sigma_1,\sigma_2,\cdots,\sigma_n\) 是 \(1,2,\cdots,n\) 的一个排列。
来考虑一种特殊的置换:设 \(\sigma\in S_n,i_1,i_2,\cdots,i_t\in\{1,2,\cdots,n\}\),如果 \(\sigma(i_1)=i_2,\sigma(i_2)=i_3,\cdots,\sigma(i_{t-1})=i_t,\sigma(i_t)=i_1\),且 \(i_1,i_2,\cdots,i_t\) 之外的元素在 \(\sigma\) 下都保持不变,则称 \(\sigma\) 为 \(i_1,i_2,\cdots,i_t\) 的轮换,记为 \((i_1,i_2,\cdots,i_t)\),\(t\) 称为轮换 \(\sigma\) 的长度。
看一张形象的图:
图中 \(a\to b\) 表示 \(\sigma(a)=b.\)
上图中,\((1,3,4)\) 是一个长度为 \(3\) 的轮换。
上图中的置换可看做是 \((1,3,4)\) 和 \((2,5)\) 这两个不交轮换的乘法(即复合)的结果。
#1.3 性质
补充完这么多抽代的知识,相信再看上面的定义就不难理解了,下面来看它的几个性质。
#1.3.1 递推关系
对于这种特殊的数列,我们首先想要知道的肯定是他的递推式以及通项公式,我们先来看递推式。
来看第 \(n\) 个元素的归属。设 \(\sigma\) 是 \(S_n\) 中恰有 \(k\) 个轮换的置换。
若 \(\sigma(n)=n\),那么 \(n\) 是一个单独的轮换,所以剩下的 \(n-1\) 个元素应当恰好包含 \(k-1\) 个轮换,所以这样的置换应当有 \(c(n-1,k-1)\) 个。
若 \(\sigma(n)=m\ (n\ne m)\),也就意味着 \(n\) 不是一个单独的轮换,所以前 \(n-1\) 个元素仍应恰好包含 \(k\) 个轮换,也就是 \(c(n-1,k)\)。但这就够了吗?不够。因为 \(\sigma(n)\) 显然还有 \(n-1\) 种不同的可能,所以这样应当总共有 \((n-1)\cdot c(n-1,k)\) 种不同的置换。
综合上面两种情况的讨论,我们能得到:
对任意 \(n\geq1,\ k\geq1,\ c(n,k)\) 满足递推关系
#1.3.2 性质 1
\(\{c(n,k)\}_{n=1}^\infty\) 满足如下的函数方程:
证明:
对 \(n\) 用归纳法进行证明。当 \(n=1\) 时,命题即 \(x=x\),显然成立。
设 \(n\geq2\),且命题对 \(n-1\) 成立,则对 \(n\),由归纳假设及 \(c(n,k)\) 的递推性质知,对任意 \(1\leq k\leq n\),有
从而
即命题对 \(n\) 成立。
对上面证明的部分说明:
- \([x^k]\) 指的是取后面的多项式中 \(x^k\) 项的系数。
#1.3.3 性质 2
\(\{s(n,k)\}_{n=1}^\infty\) 满足如下的函数方程:
证明:
在 \((1)\) 中,用 \(-x\) 代替 \(x\),得
上式两端同乘 \((-1)^n\),得
回顾 第一类 Stirling 数的定义 知上式即
#2.0 第二类 Stirling 数
#2.1 定义
对于正整数 \(n,k\),定义 \(S(n,k)\) 为把 \([n]\)(含有 \(n\) 个元素的集合)分成 \(k\) 个非空子集的划分个数,称之为第二类 \(\text{Stirling}\) 数。
置 \(S(n,0)=S(0,n)=0(n\geq1)\) 及 \(S(0,0)=1.\)
第二类 \(Stirling\) 数的定义要简单很多,没有任何需要补充的知识,这很好 (不用再多敲那么多东西)。
#2.2 性质
比较一下 第一类 Stirling 数的定义 和 第二类 Stirling 数的定义,发现有着惊人的相似度,那么他们在性质上是不是也相似呢?是的,听我慢慢道来。
#2.2.1 递推关系
把 \([n]\) 分成 \(k\) 个非空子集的划分简称为 \(k\)-划分。
同样考虑第 \(n\) 个元素的归属。设 \(P\) 是 \([n]\) 的一个 \(k\)-划分。
若 \(n\) 在 \(P\) 中是一个单独的子集,所以剩下的 \(n-1\) 个元素应当恰好被分成 \(k-1\) 个子集,所以这样的划分应当有 \(S(n-1,k-1)\) 个。
若 \(n\) 不是一个单独的子集,所以前 \(n-1\) 个元素仍应恰好被分成 \(k\) 个子集,也就是 \(S(n-1,k)\)。但这就够了吗?不够。因为 \(n\) 所处的集合显然还有 \(k\) 种不同的可能,所以应当总共有 \(k\cdot S(n-1,k)\) 种不同的划分。
综合上面两种情况的讨论,我们能得到:
对任意 \(n\geq1,\ k\geq1,\ S(n,k)\) 满足递推关系
上面的过程不能说很像,只能说是一模一样。
#2.2.2 性质 1
\(\{S(n,k)\}_{n=1}^\infty\) 满足如下的函数方程:
这里 \(x^{\underline k}=x(x-1)\cdots(x-k+1)\),叫做下降幂,也写作 \((x)_n.\)
证明:
对 \(n\) 用归纳法进行证明。当 \(n=1\) 时,命题即 \(x=x\),显然成立。
设 \(n\geq2\),且命题对 \(n-1\) 成立,则对 \(n\),由归纳假设及 \(S(n,k)\) 的递推性质知
即命题对 \(n\) 成立。
#2.2.3 显式公式
对任意正整数 \(n,k\),有
证明:
假设有 \(k\) 个不同的篮子,将 \([n]\) 中的元素分到这 \(k\) 个不同的篮子里,篮子中可以为空,用 \(S\) 表示所有这样的分法组成的集合,显然 \(|S|=k^n\),对任意 \(1\leq i\leq k\),定义 \(P_i\) 为性质 “第 \(i\) 个篮子是空的”,\(A_i\) 为 \(S\) 中满足性质 \(P_i\) 的分法组成的集合,\(\mathcal P\) 为所有这些性质组成的集合,则
先来讲讲上面的部分:
上面柿子中 \(\overline{A_i}\) 表示 \(A_i\) 在 \(S\) 中的补集。
\(k!\) 从哪来?注意到,我们这里构造的篮子是不同的,所以就导致统计出的是包含顺序的,但回顾 第二类 Stirling 数的定义 发现,第二类 \(\text{Stirling}\) 数所划分的集合是不同的,因而不应有顺序,除以 \(k!\)。
注意到对于任意 \(1\leq i_i<i_2<\cdots<i_s\leq k,\ A_{i_1}\cap A_{i_{2}}\cap\cdots\cap A_{i_{s}}\) 表示的意义是 \(S\) 中满足性质 \(P_{i_1},P_{i_2},\cdots,P_{i_s}\) 的分法组成的集合。在这些分法中,标号为 \(i_1,i_2,\cdots,i_s\) 的篮子为空,所有的元素只能放进其余的 \(k-s\) 个篮子中,从而 \(|A_{i_1}\cap A_{i_{2}}\cap\cdots\cap A_{i_{s}}|=(k-s)^n\)。考虑容斥,得
上面柿子的最后一步是令 \(j=k-r\) 得到。
#3.0 融合——
现在我们已经对第一类、第二类 \(\text{Stirling}\) 数作了了解,现在让我们来找一找他们之间的联系,并发掘一些有趣的性质吧/se/se/se
#3.1 二者联系
#3.1.1 联系一
由两类 \(\text{Stirling}\) 数,定义 \(n\) 阶矩阵 \(\bold A=(a_{ij})_{n\times n}:=(s(i,j))_{n\times n}\) 及 \(\bold B=(b_{ij})_{n\times n}:=(D(i,j))_{n\times n}\),则
由此可得推论
#3.1.2 联系二
这一节需要先看 #3.2.1 第二类的生成函数
令 \(A(x),B(x)\) 分别表示数列 \(\{a_n\}_{n=0}^\infty,\{b_n\}_{n=0}^\infty\) 的指数型生成函数,则下列三个命题等价:
- 对任意 \(n\geq0\),有 \(b_n=\sum\limits_{i=0}^nS(n,i)a_i,\)
- 对任意 \(n\geq0\),有 \(a_n=\sum\limits_{i=0}^ns(n,i)b_i,\)
- \(B(x)=A(e^x-1)\),也即 \(A(x)=B(\ln(1+x)).\)
证明:
若 2. 成立,则有
即 1. 也成立。同理,若 1. 成立,则可得 2. 成立,从而命题 1. 与 2. 等价。
若 1. 成立,则有
从而 3. 成立。易见推导过程可逆,故 1. 与 3. 等价。
综上,1. 2. 3. 相互等价。
#3.2 生成函数
#3.2.1 第二类的生成函数
\(\{S(n,k)\}_{n=0}^\infty\) 的指数型生成函数为
证明:
#3.2.2 第一类的生成函数
\(\{s(n,k)\}_{n=0}^\infty\) 的指数型生成函数为
参考文献
[1] 冯荣权, 宋春伟. 组合数学. 北京: 北京大学出版社, 2015.
[2] 赵春来, 徐明曜. 抽象代数Ⅰ. 北京: 北京大学出版社, 2008.