news 2026/4/17 20:36:44

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 9:07:47

iOS WKWebView 安全机制:跨域隔离绕过与内存破坏漏洞

前言 技术背景 WKWebView 是苹果自 iOS 8 引入的现代化网页渲染组件&#xff0c;取代了安全性较差的 UIWebView。它采用多进程架构&#xff08;WebContent 进程独立于 App 主进程&#xff09;&#xff0c;并逐步引入站点隔离&#xff08;Site Isolation&#xff09;机制&#x…

作者头像 李华
网站建设 2026/4/18 8:46:15

BXMya 560CMU05 1KGT012700R0002 中央通信模块

560CMU05 1KGT012700R0002是瑞士ABB公司旗下的RTU中央通信模块&#xff0c;隶属于ABB RTU560系列远程终端单元模块系列&#xff0c;是工业自动化控制系统、RTU远程终端单元、SCADA系统及远程监控设备的核心通信与控制组件及备件&#xff0c;适配ABB RTU560系列远程终端单元系统…

作者头像 李华
网站建设 2026/4/18 8:00:36

照着用就行:千笔写作工具,全网顶尖的AI论文网站

你是否曾为论文选题发愁&#xff0c;绞尽脑汁却毫无头绪&#xff1f;是否在深夜面对空白文档无从下笔&#xff0c;反复修改却总对表达不满意&#xff1f;论文写作不仅是学术能力的考验&#xff0c;更是时间与精力的挑战。对于大多数本科生来说&#xff0c;文献查找、框架搭建、…

作者头像 李华
网站建设 2026/4/18 5:31:59

横评后发现!领军级的降AIGC平台 —— 千笔·降AIGC助手

在AI技术迅速渗透学术写作领域的当下&#xff0c;越来越多的学生开始借助AI工具提升论文撰写效率。然而&#xff0c;随着知网、维普、万方等查重系统对AI生成内容的识别能力不断提升&#xff0c;以及Turnitin等国际平台对AIGC的严格审查&#xff0c;论文中的“AI率超标”问题逐…

作者头像 李华
网站建设 2026/4/18 6:10:06

索引OFDM系统像是个自带导航的快递员,每个子载波都能携带数据包和地址标签。这次咱们直接撸代码,看看这玩意儿在AWGN和瑞利信道下到底抗不抗揍

索引OFDM调制解调系统的性能仿真分析先搞个最简单的系统模型练手。假设系统有64个子载波&#xff0c;用QPSK调制&#xff0c;循环前缀长度16。代码里最带劲的部分是索引映射&#xff0c;这里用随机打乱的方式模拟动态分配&#xff1a; import numpy as npN 64 # 子载波总数 C…

作者头像 李华
网站建设 2026/4/17 23:55:12

控制单元4PFXA 401S-3BSE024388R2

孙13665068812控制单元 4PFXA 401S-3BSE024388R2 详解在现代工业自动化系统中&#xff0c;可编程逻辑控制器&#xff08;PLC&#xff09;或分布式控制系统&#xff08;DCS&#xff09;是核心的大脑&#xff0c;负责执行控制逻辑、处理数据并与现场设备通信。而作为这些系统的关…

作者头像 李华