第二类斯特林数小记

第一类斯特林数没弄懂,先咕了。

对于第二类斯特林数记做 (egin{Bmatrix}n\ mend{Bmatrix}),也可记做 (S(n,m)),表示将 (n) 个两两不同的元素,划分到 (m) 个互不区分的非空集合的方案数。

递推式

[egin{Bmatrix}n\ mend{Bmatrix}=egin{Bmatrix}n-1\ m-1end{Bmatrix}+m×egin{Bmatrix}n-1\ mend{Bmatrix} ]

边界是 (egin{Bmatrix}n\ 0end{Bmatrix}=[n=0])

证明:

新插入一个元素时,有两种方案:

  • 将新元素放进一个新集合里,方案数为 (egin{Bmatrix}n-1\ m-1end{Bmatrix})
  • 将新元素放进一个原来有的集合里,方案数为 (m×egin{Bmatrix}n-1\ mend{Bmatrix})

最后用加法原理相加即可。

通项公式

(egin{Bmatrix}n\ mend{Bmatrix}=frac{1}{m!}sum_{i=0}^m(-1)^{m-i} binom{m}{i}i^n)

简单理解就是每次钦定有多少个集合有元素,再容斥一下解决,最后因为无序,再除以个 (frac{1}{m!})

证明:

证明采取二项式反演,设 (f(i)) 为将 (n) 个元素划分成 (i) 个两两不同的集合的方案数(允许有空集),(g(i)) 为将 (n) 个元素划分成 (i) 个两两不同的非空集合的方案数(不允许有空集)

易得

[f(i)=i^n\ f(i)=sum_{j=0}^i binom{i}{j}g(j) ]

那么反演一下:

[g(i)=sum_{j=0}^i(-1)^{i-j} binom{i}{j}f(j)\ g(i)=sum_{j=0}^i(-1)^{i-j} binom{i}{j}j^n ]

根据定义可得 (frac{1}{m!}g(m)=egin{Bmatrix}n\ mend{Bmatrix})

那么更常用的一种写法是

[egin{Bmatrix}n\ iend{Bmatrix}=frac{1}{i!}sum_{j=0}^ifrac{(-1)^{i-j}j^ni!}{j!(i-j)!}\ egin{Bmatrix}n\ iend{Bmatrix}=sum_{j=0}^ifrac{(-1)^{i-j}j^n}{j!(i-j)!} ]

一种技巧就是设 (f_i=frac{(-1)^i}{i!})(g_i=frac{i^n}{i!}),然后

[egin{Bmatrix}n\ mend{Bmatrix}=sum_{i=0}^mf_i*g_{m-i} ]

(NTT) 优化一下。

有一个应用:

[m^n=sum_{i=0}^{min(n,m)}egin{Bmatrix}n\ iend{Bmatrix}inom{m}{i}i! ]

证明:(m^n) 可以理解为 (n) 个物品放到 (m) 个不同的盒子里,而后面的式子意思就是枚举 (i) 个盒子有数,然后从 (m) 个盒子中选出 (i) 个进行全排列,意思是等价的。

原文地址:https://www.cnblogs.com/nanfeng-blog/p/15233181.html