集合的划分问题(二)
2015-11-17 08:19
274 查看
#include "iostream" #include "algorithm" #include "fstream" using namespace std; //集合划分,s(i,j)表示元素个数为i的集合可以划分为j个集合 //s(i, 0) = 0 //s(i, i) = 1 //s(i, 1) = 1 //s(i, j) = s(i-1, j-1) + j * s(i-1, j) //i-1个元素的集合已经划分j-1个集合,第j个元素单独一个集合,凑成j个集合 //i-1个元素的集合已经划分j个集合,第j个元素有j个安插方式 //综上,元素个数为n可以划分成m个集合的方式为 s(n,m) int s[100][100]; int set(int n, int m) { for(int i=0; i<=n; i++) { s[i][0] = 0; s[i][i] = 1; s[i][1] = 1; } for(i=0; i<=n; i++) for(int j=0; j<i; j++) s[i][j] = s[i-1][j-1] + j * s[i-1][j]; return s [m]; } int main() { int n; cout << "输入元素个数:"; cin >> n; int m; cout << "输入欲划分成的子集个数:"; cin >> m; int count = set(n, m); cout << "划分方式的种数为:"; cout << count << endl; return 0; }
相关文章推荐
- OC中的Block的那些事
- 十年来经济过热带来哪些教训
- ubuntu 100M 到 10M
- 最长上升子序列
- CCNA实验十七 交换机端口镜像
- 安卓自定义动画——画一个圆和对勾
- mysql 多表 查询
- [置顶] 网络爬虫:利用Selenium实现登录
- [?*]Letter Combinations of a Phone Number
- Android实现微信录制小视频的计时动画
- 我是这样看搜狗搜索与知乎合作的
- OC中的protocol
- 我的个人知识管理工具一览及相关经验技巧
- 技能的十一个级别
- 一步步教你Hadoop多节点集群安装配置
- 《你必须知道的495个C语言问题》知识笔记及补充
- Python篇----正则表达式语法(基础)
- mysql约束
- 三、jQuery事件处理
- 出发吧