1个元素的集合A={a}
划分:1个   就是A本身

2个元素的集合A={a,b}的划分
    划分成一大块  A
    划分成2小块:{{a},{b}}
    共计两种
3个元素共计5种
参考屈婉玲《离散数学》p134页

4个元素的集合{a,b,c,d}
4,这么划分有1种. 是{a,b,c,d}
1,3,这么划分有4种. 分别是{<a>,<b,c,d>}、{<b>,<a,c,d>}、{<c>,<a,b,d>}、{<d>,<a,b,c>}
2,2,这么划分有3种. 分别是{<a,b>,<c,d>}、{<a,c>,<b,d>}、{<a,d>,<b,c>}
1,1,2,这么划分有6种. 分别是{<a>,<b>,<c,d>}、{<a>,<c>,<b,d>}、{<a>,<d>,<b,c>}、{<b>,<c>,<a,d>}、{<b>,<d>,<a,c>}、{<c>,<d>,<a,b>}
1,1,1,1,这么划分有1种. 是{<a>,<b>,<c>,<d>}
以上一共有15种.

那么n个元素的划分:
递归算法:
[离散数学]N个元素的集合有多少个划分?_参考资料

 

 

//n个元素有多少个划分
int F(int n,int m){
    if(m==1)
        return 1;
    if(m==n)
        return 1;
    else{
        return F(n-1,m-1)+m*F(n-1,m);
    }
}

int main(){
    int sum=0;
    int n=5;
    for(int i=1;i<=n;i++)
        sum+=F(n,i);
    printf("%d\n",sum);
    
}

参考资料:https://wenku.baidu.com/view/c726a2f09ec3d5bbfd0a745c.html