如何将一组值映射到另一组?

时间:2013-12-12 18:45:28

标签: algorithm


修改

刚刚在SO上发现了另一个线程,这正是我所需要的:How can I create cartesian product of vector of vectors?

谢谢大家!


假设我有一组值S1(A, B, C)而另一组S2(D, E, F),其中转换S1 -> S2会给另一组S3,其中S3(AD, AE, AF, BD, BE, BF, CD, CE, CF) ;换句话说,我想将第一组的每个值映射到第二组的每个值,从而得到第三组,其大小为S1 x S1

现在,对于两组来说这样做是件微不足道的事情,但是,当涉及到可变数量的集合时,我感到茫然,即S1 -> S2 -> S3 -> ... -> Sn

如果我们将其视为树/图结构,则通过查找每个路径来解决问题:

        start
          .
    .     .     .
   A      B      C
   .      .      .
 . . .  . . .  . . .
 D E F  D E F  D E F

是否有可扩展的算法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

根据定义,这将是递归。如果您将所有这些集合放入一个多维数组中,您可以轻松地通过所有不同级别进行递归并创建最终集合。