我有一个问题就是获得所有元素组合,元素可以多次重复和重复使用,即使在单一组合中也是如此。
例如,我有一个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)。
我不确定搜索此问题的关键字是什么,如果这是一个重复的问题,请告诉我。
答案 0 :(得分:3)
对我而言,就像一个递归算法会做的工作:适合第一个对象,然后添加下一个对象的所有组合(包括你刚刚包含的那个),缩小尺寸。
然后对第二个对象执行相同操作,始终使用与下一个对象组合的组合,而不是之前的对象(在B之后不能有A)。
举个例子,你会得到: