斯大林数1,2,贝尔数,卡特兰数
作者:互联网
【第一类斯特林数】
1.定理
第一类斯特林数 S1(n,m) 表示的是将 n 个不同元素构成 m 个圆排列的数目。
const int mod=1e9+7;//取模
LL s[N][N];//存放要求的第一类Stirling数
void init(){
memset(s,0,sizeof(s));
s[1][1]=1;
for(int i=2;i<=N-1;i++){
for(int j=1;j<=i;j++){
s[i][j]=s[i-1][j-1]+(i-1)*s[i-1][j];
if(s[i][j]>=mod)
s[i][j]%=mod;
}
}
}
【第二类斯特林数】
1.定理
第二类斯特林数 S2(n,m) 表示的是把 n 个不同元素划分到 m 个集合的方案数。
const int mod=1e9+7;//取模
LL s[N][N];//存放要求的Stirling数
void init(){
memset(s,0,sizeof(s));
s[1][1]=1;
for(int i=2;i<=N-1;i++){
for(int j=1;j<=i;j++){
s[i][j]=s[i-1][j-1]+j*s[i-1][j];
if(s[i][j]>=mod)
s[i][j]%=mod;
}
}
}
【贝尔数】
1.定理
B( P )是将P元素集合分到非空,且不可区分盒子的划分个数(没有要求分到几个盒子里)
B( p )=S2(P,0)+S2(P,1)+S2(P,2)+S2(P,3)+S2(P,4)+…S2(P,n);
即先求出第二类斯特林数,然后求和即可
待补充
参考博客:https://blog.csdn.net/u011815404/article/details/80083954
标签:第二类,贝尔,斯特林,S2,斯大林,int,第一类,卡特兰,mod 来源: https://blog.csdn.net/weixin_43311440/article/details/101032170