MATLAB 编程实例练习 No. 19 回溯算法解决排列组合问题
发布时间
阅读量:
阅读量
有两个已知的数据集合a_1 = [1, 2, 3, 4]和a_2 = [5, 6]。我们需要构造一个新的集合b(其元素个数为奇数),该集合中的奇数值取自于集合a_2中的元素,并且偶数值来自于集合a_1中的相应位置。当所有来自集合a_2的元素都被选定时,则停止后续的选择过程,并完成整个排列组合的操作以得到最终的集合b。
具体步骤如下:
首先明确主要任务:确定如何基于给定的数据集构造满足特定条件的新数据集;
其次深入研究已有数据集的特征;
再次建立选择标准:将奇数值固定在来自第二个数据集的位置上;
最后系统化地执行排列组合的操作。
- 终止条件是:数组b已达到所需长度,并需通过if语句进行判断;
- 选择方法是根据题目要求将偶数项选自a₁表单输入区中的对应字段,并将奇数值存入a₂表单输入区中的对应字段;因此,在每次循环处理时都需要判断当前处理的是第奇几个数据条;
- 在选择新数据条时需确保所选数据不与已有数据冲突,在每次循环迭代前需对新数据进行检查以防止重复。
主函数:
clear all
clc
global b plan n L1 L2 a1 a2
a1 = [1 2 3 4];
a2 = [5 6];
b = [];
plan = [];
L1 = length(a1)
全部评论 (0)
还没有任何评论哟~
