其他分享
首页 > 其他分享> > 斯大林数1,2,贝尔数,卡特兰数

斯大林数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