| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2005 人关注过本帖
标题:求集合的算法
只看楼主 加入收藏
枫双
Rank: 1
等 级:新手上路
帖 子:26
专家分:5
注 册:2016-8-10
结帖率:75%
收藏
 问题点数:0 回复次数:1 
求集合的算法

(1) 有一个集合R = [a, b, c, d, e, f, g, h, i, j, k, l, m, n, ],
(2) 由一组R的真子集构成的集合Rn = [R1, R2, R3, R4, R5],其中
R1 = [ a, c, e, g, i, k, l, m]
R2 = [ b, c, d, h, k]
R3 = [ d, f, g, n]
R4 = [ b, f, g, i, j]
R5 = [ b, k, n]
(3) 给定一个目标集 C = [b, d, f, l, n], C为R的子集
[问题]求在Rn中找出个数最少的一个子集,这个子集的所有元素的并集为U,要求U ∩ C = C,且U ∪ C = U,请写出求解这样的一个子集的通用算法。
搜索更多相关主题的帖子: 集合 算法 并集 要求 通用 
2019-04-22 16:44
rind
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:49
专家分:368
注 册:2018-3-8
收藏
得分:0 
这里使用数学集合(Set),集合具有无序性,所以有序排一次即可。单个解集为Set,所有解集List。
思路:
1、顺序遍历:
         1.1、对真子集R求R∩C,不为空集,加入Set并求余集C-R∩C记为C';
         1.2、递归,向后递归(解集的无序性,所以不必兼顾前方),方式同1.1,交集不为空,加入Set。。。
         1.3、递归的结束:a、到达尾部,且C'不为空,该组不合适;b、C'为空,该Set即为其中一个解,加入List;
2、到达尾部、遍历结束。

遍历与递归交替使用,
每次递归都要遍历余下真子集、每次遍历都要对余下真子集递归求解。



仅供参考,欢迎指正
2019-05-04 21:24
快速回复:求集合的算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034318 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved