首页 > 其他 > 详细

[离散数学]N个元素的集合有多少个划分?

时间:2021-09-21 00:59:04      阅读:8      评论:0      收藏:0      [点我收藏+]

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个元素有多少个划分
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

[离散数学]N个元素的集合有多少个划分?

原文:https://www.cnblogs.com/coolfan/p/15310314.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!