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