斯特林数的基础性质与斯特林反演的初步入门

摘要:
前言反反复复十余遍了吧,每次点开斯特林反演的学习博客,看了几行式子又晕乎乎地点击关掉。这里仅介绍定义、性质等基础的理论知识,至于如何快速求解斯特林数之类的具体实现可能会另开一篇博客吧。第一类斯特林数定义第一类斯特林数表示个有区别的小球拼成个环(无空)的方案数。我们可以把第一类斯特林数中的环理解成置换,全排列和斯特林数就一一对应了。自然数幂和第二类斯特林数和自然数幂和有着重要关系。

前言

反反复复十余遍了吧,每次点开斯特林反演的学习博客,看了几行式子又晕乎乎地点击关掉。

但到了现在,我已经不想再退缩了。

这里仅介绍定义、性质等基础的理论知识,至于如何快速求解斯特林数之类的具体实现可能会另开一篇博客吧。

第一类斯特林数

定义

第一类斯特林数(S_1(n,m))表示(n)有区别的小球拼成(m)个环(无空)的方案数。

递推式

[S_1(n,m)=S_1(n-1,m-1)+(n-1) imes 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) imes (-1)^{n-i} imes x^i\ x^{ar{n}}=sum_{i=0}^n S_1(n,i) imes x^i ]

考虑归纳法证明,这里以第一个式子为例:

[egin{align} x^{underline{n+1}}&=(x-n)x^{underline{n}}\ &=xsum_{i=0}^nS_1(n,i) imes(-1)^{n-i} imes x^i-nsum_{i=0}^nS_1(n,i) imes (-1)^{n-i} imes x^i\ &=sum_{i=1}^{n+1}S_1(n,i-1) imes(-1)^{n-i+1}x^i+nsum_{i=0}^{n+1}S_1(n,i) imes(-1)^{n-i+1} imes x^i\ &=(sum_{i=1}^{n+1}(S_1(n,i-1)+n imes S_1(n,i)) imes(-1)^{(n+1)-i} imes x^i)+(S_1(n,0) imes(-1)^{n+1} imes x^0)\ &=sum_{i=0}^{n+1}S_1(n+1,i) imes(-1)^{(n+1)-i} imes x^i end{align} ]

第二类斯特林数

定义

第二类斯特林数(S_2(n,m))表示(n)有区别的小球放入(m)无区别的盒子(无空)的方案数。

递推式

[S_2(n,m)=S_2(n-1,m-1)+m imes S_2(n-1,m) ]

同样可以分成两种情况:

  • 新增一个盒子。
  • 加入到原先的一个盒子中。注意这就是和第一类斯特林数的区别了,它的系数是(m)

重要性质

[m^n=sum_{i=0}^mS_2(n,i) imes i! imes C(m,i)=sum_{i=0}^mS_2(n,i) imes m^{underline{i}} ]

考虑(m^n)就是把(n)个有区别的小球放入(m)个有区别的盒子(可以为空)的方案数。

那么我们首先枚举非空盒子数(i),把(n)个球放入(i)个盒子中,最后给这些盒子标个号,就对应起来了。

组合表示

[S_2(m,n)=frac1{m!}sum_{k=0}^m(-1)^k imes C_{m,k} imes (m-k)^n ]

如果我们算入空箱子的情况,答案就是(frac{m^n}{n!})

因此我们容斥,枚举(k)表示至少有多少空盒子。

但注意在这里的容斥过程中我们默认了盒子是不同的(因为这样好算),所以最好还要除以一个(frac1{m!})

自然数幂和

第二类斯特林数和自然数幂和有着重要关系。

推一推式子:

[egin{align} sum_{i=0}^n i^k&=sum_{i=0}^nsum_{j=0}^kS_2(k,j) imes 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^{ar{n}}=sum_{i=0}^nS_1(n,i)x^i\ m^n=sum_{i=0}^nS_2(n,i) imes m^{underline{i}} ]

补充:

[x^{underline{n}}=(-1)^n(-x)^{ar{n}}\ x^{ar{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)

[egin{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)

[egin{align} m^{n}&=sum_{i=0}^nS_2(n,i)m^{underline{i}}\ &=sum_{i=0}^nS_2(n,i)(-1)^i(-m)^{ar{i}}\ &=sum_{i=0}^nS_2(n,i)(-1)^isum_{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) ]

证明:

[egin{align} f(n)&=sum_{k=0}[k=n]f(k)\ &=sum_{k=0}^nsum_{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} ]

后记

例题什么的,先坑着吧。。。

免责声明:文章转载自《斯特林数的基础性质与斯特林反演的初步入门》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Rsync+sersync部署Keepalived 进程无法关闭下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[整理]多项式/生成函数题目泛刷

洛谷P5408 第一类斯特林数·行 众所周知,第一类斯特林数可用于普通幂和上升幂之间的转换:(x^{overline{n}}=sumlimits_{i=0}^negin{bmatrix}n\iend{bmatrix}x^i),也就是说我们需要快速求上升幂。 考虑倍增,有 (x^{overline{2n}}=x^{overline{n}}(x+n)^{ove...