获得元素和元素的所有组合可以在单个组合中重复多次

时间:2015-12-09 14:41:25

标签: algorithm combinations formula

我有一个问题就是获得所有元素组合,元素可以多次重复和重复使用,即使在单一组合中也是如此。
例如,我有一个100 cm2的盒子,然后我有下面的物体:
1)物体A:20cm2
2)对象B:50cm2

预期的组合将是:(A),(A,A),(A,A,A),(A,A,A,A),(A,A,A,A,A),( A,B),(A,B,A),(A,B,A,A).....

允许任何组合,只要它们可以放入盒子中。物体可以单次组合重复多次。但是,不需要重复的图案,例如, (A,B)等于(B,A)。

我不确定搜索此问题的关键字是什么,如果这是一个重复的问题,请告诉我。

1 个答案:

答案 0 :(得分:3)

对我而言,就像一个递归算法会做的工作:适合第一个对象,然后添加下一个对象的所有组合(包括你刚刚包含的那个),缩小尺寸。

然后对第二个对象执行相同操作,始终使用与下一个对象组合的组合,而不是之前的对象(在B之后不能有A)。

举个例子,你会得到:

  • (A)
    • (A,A)
      • (A,A,A)
        • (A,A,A,A)
          • (A,A,A,A,A)
          • (A,A,A,A,B)不起作用
        • (A,A,A,B)不起作用
      • (A,A,B)
    • (A,B)
      • (A,B,B)不起作用
  • (B)
  • (B,B)