ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-09-18 22:02:37  阅读:447  来源: 互联网

标签:return int sum 元素 离散数学 划分 集合


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

标签:return,int,sum,元素,离散数学,划分,集合
来源: https://www.cnblogs.com/coolfan/p/15310314.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有