集合与子集合
设n,m,k ∈Z,且n>m>k.一个n个元素的集合A,其含m个元素的全部子集合B有C_n^m个,其含k个元素的全部子集合C有C_n^k个,B的每个含元素含k个元素的子集合C_m^k个(当然互相之间可能有重叠)
试在子集合B中选择数目最少的 num个集合,使其子集囊括子集合C
要求1: 编写函数 Mincount(int n,int m,int k) 计算num 的值.
要求2: num<10000 时,输出该num个子集合 比如:
A={1,2,3,4,5}
B={{1,2,3},{1,2,4},{1,2,5},{1,3,4},{1,3,5},{1,4,5},{2,3,4},{2,3,5},{2,4,5},{3,4,5}}
C={{1,2},{1,3},{1,4},{1,5},{2,3},{2,4},{2,5},{3,4},{3,5},{4,5}}
由于
{{1,2,3},{1,4,5},{2,4,5},{3,4,5}} 的2元素子集即可囊括子集合C,所以
Mincount(5,3,2)=4 同理:
Mincount(6,3,2)=6 很难么?我试了试递归,没搞定。:o :o
页:
[1]