当前位置: 首页 > news >正文

基于Matlab实现和相等的两个不相交子集

确认与验证 作业

程序目的

抽取n个不相同的两位数 (10~99),验证这n个数组成的集合能找到两个不相交子集,其所有元素之和相等。

附加要求

假设抽取n个不相同的两位数,总是能找到两个元素之和相等的不相交子集,求n的最小值。

测试过程

  1. 运行Q30.m,输出如下:
the set is 91 90 89 88 83 64 55 33 21 18 one solution is: first subset is: 55 33 second subset is: 88
  1. 阅读代码,分析算法
n = 10; A = 10:99; random_num = A(randperm(numel(A),n));%随机选出10个2位数 random_num = sort(random_num,'descend'); %排序 disp('the set is ') disp(random_num) indx = ff2n(n); S = zeros(1,2^n); for k = 1:2^n S(k) = sum(random_num(boolean(indx(k,:)))); end [S2,indx2] = sort(S); k = 1; stop_flag = 1; while stop_flag if S2(k) == S2(k+1) hasInterSet = max(indx(indx2(k),:) + indx(indx2(k+1),:)); if hasInterSet<2 disp('one solution is:') disp('first subset is:') disp(random_num(boolean(indx(indx2(k),:)))) disp('second subset is:') disp(random_num(boolean(indx(indx2(k+1),:)))) stop_flag = 0; else k = k+1; end else k = k+1; if k == 2^n stop_flag = 0; disp('can not find the sub sets'); end end end
  1. 分别在第8131827行设置断点,在断点处查看变量是否符合预期。
  2. 根据分析结果,优化代码。
  3. 重复步骤三,直至程序运行情况符合预期。
  4. Q30.m程序封装为一个函数,调用该函数,重复执行,直至出现某一次找不到和相等的两个不相交子集,此时判定该n不满足条件;或到达重复次数上限,上限为1000000 次,此时判定该n符合条件。
  5. 更改n的值,从初始值10开始,以步长1递减,重复执行上一步骤。
  6. 根据上一步骤,找到满足要求的最小的n 。

优化

  1. 26-27行的条件分支冗余,hasInterSet<2恒成立。
    1. 实验现象:设置于第27行的断点,在超过3000000次运行过程中均未触发。
    2. 理论依据:任何求和相等的相交子集对,都能找到其对应的、前置的求和相等的不相交子集对,而这个前置子集对被找到时,程序即已停止迭代。
  1. 15stop_flag建议更改为continue_flag,更加符合变量功能。

测试结果

满足条件的n最小为8 。

♻️ 资源

大小:133KB

➡️资源下载:https://download.csdn.net/download/s1t16/87404306

注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!

http://www.jsqmd.com/news/369381/

相关文章:

  • 10325_基于SpringBoot的二手图书系统
  • 最受家装设计师欢迎的展会有哪些?2026五大权威展会深度解析|助你抢占先机 - 匠言榜单
  • 2026年优秀的市政检查井,混凝土检查井厂家口碑推荐清单 - 品牌鉴赏师
  • Sa-Token(一)之简介及入门:告别鉴权内耗,让每一位Java开发者都能轻松上手
  • 【股票】【股票的量化交易是什么】【股票的量化交易优点是什么】【股票的量化交易缺点是什么】
  • 膏体灌装机生产厂家推荐,山东地区有哪些好用又实惠的品牌? - mypinpai
  • 分析扬州板式换热器选购要点,玖耀换热产品价格贵不贵? - 工业推荐榜
  • MoE架构十年演进
  • USB总线和协议
  • GEO优化公司价格差异大,北京哪家费用更合理? - 工业品牌热点
  • 2026年口碑好的药店AI健康管理,中医馆AI健康管理公司采购优选指南 - 品牌鉴赏师
  • Transformer十年演进
  • 2026年大连地区神八五苔复合肥质量排名新鲜出炉 - 工业设备
  • 【Hadoop+Spark+python毕设】基于大数据的大众点评美食数据分析与可视化系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、实战教学
  • 2026年河南激光除锈机品牌推荐,适合锰合金除锈且口碑好的有哪些 - 工业推荐榜
  • Triton十年演进
  • 2026年新疆、内蒙古等地实力强的暖气片公司年度排名及选购指南 - 工业品牌热点
  • LSTM十年演进
  • 聊聊2026年广东靠谱的公园塑木地板厂家排名 - 工业设备
  • 指纹识别系统软件-Android studio软件源代码-java语言
  • 新手必读:分期乐1000元万通金券回收流程指南与常见问题解答 - 团团收购物卡回收
  • 探讨低氮锅炉选购,阿吉利斯厂满足多样需求的好选择 - myqiye
  • ResNet十年演进
  • 振动器-Android studio软件源代码-java语言
  • 2025高温塑料回收推荐,精选厂家不容错过,高温塑料回收口碑推荐榜关键技术和产品信息全方位测评 - 品牌推荐师
  • 加油卡回收平台怎么选?揭秘安全高效的回收流程! - 团团收购物卡回收
  • 85.零钱兑换
  • 2026年知名的江苏SOLIDWORKSPDM软件服务商采购指南及推荐 - 品牌鉴赏师
  • 平常心,平常心
  • 平舆靠谱驾校培训费用多少,专业培训权威品牌有哪些 - mypinpai