集合划分问题(一)
2015-11-16 22:33
405 查看
#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可以划分的集合个数为 s(n,0) + s(n,1) + s(n,2) +...+ s(n, n) int s[100][100]; int set(int n) { 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]; int sum = 0; for(i=0; i<=n; i++) sum += s [i]; return sum; } int main() { int n; cout << "输入元素个数:"; cin >> n; int count = set(n); cout << "划分的集合个数为:"; cout << count << endl; return 0; }
相关文章推荐
- 【大话GSM】MS计算寻呼信道、寻呼子信道以及确定在何时监听
- UI基础-设计模式、手势识别器
- 1036 Boys vs Girls
- Ubuntu 之 grub 引导方法
- c#下crystalreport自定义纸张报表打印
- 数据挖掘之权重计算(PageRank)
- HTTP2 学习
- Asia Regional Contest, Tokyo,Problem C Shopping
- [LeetCode-205] Isomorphic Strings(同构字符串)
- 查看job的详细日志出错: Aggregation is not enabled. Try the nodemanager at d2.hadoop:42812
- Lingo中命令脚本文件使用范例
- 递归函数
- 南大软院大神养成计划——第一天学习心得
- 基于RMI实现远程聊天功能的简单例子
- VirtualPathProvider的使用
- 线程安全
- 从巴黎的恐怖袭击看以色列如何用大数据进行反恐
- POI操作Excel设置前景色背景色
- POI操作Excel设置前景色背景色
- POI操作Excel设置前景色背景色