Advertisement

MATLAB 编程实例练习 No. 19 回溯算法解决排列组合问题

阅读量:

有两个已知的数据集合a_1 = [1, 2, 3, 4]a_2 = [5, 6]。我们需要构造一个新的集合b(其元素个数为奇数),该集合中的奇数值取自于集合a_2中的元素,并且偶数值来自于集合a_1中的相应位置。当所有来自集合a_2的元素都被选定时,则停止后续的选择过程,并完成整个排列组合的操作以得到最终的集合b
具体步骤如下:
首先明确主要任务:确定如何基于给定的数据集构造满足特定条件的新数据集;
其次深入研究已有数据集的特征;
再次建立选择标准:将奇数值固定在来自第二个数据集的位置上;
最后系统化地执行排列组合的操作。

  1. 终止条件是:数组b已达到所需长度,并需通过if语句进行判断;
  2. 选择方法是根据题目要求将偶数项选自a₁表单输入区中的对应字段,并将奇数值存入a₂表单输入区中的对应字段;因此,在每次循环处理时都需要判断当前处理的是第奇几个数据条;
  3. 在选择新数据条时需确保所选数据不与已有数据冲突,在每次循环迭代前需对新数据进行检查以防止重复。

主函数:

复制代码
    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)

还没有任何评论哟~