以子集元素之和的升序生成多集子集

时间:2018-11-15 07:10:09

标签: algorithm combinations subset-sum multiset unordered-multiset

我正在尝试提出一种算法,您可以在其中从集合中按顺序生成组合,以使它们的总和按递增顺序排列。该集合必须是多集,即允许重复。

例如,您有一个集合S = {1,2,2,3,4,5,5}

所以,我不想根据项目的数量生成所有组合(例如从1和2开始,最后是全部7),我想按以下顺序找出它们:

{1},{2},{2},{1,2},{1,2},{3},{1,3},{2,2},{4} .... .......... {1,2,2,3,4,5,5}

为什么要这样排序:取这些子集的总和,我们可以看到:

{1},{2},{2},{3},{3},{3},{4},{4},{4} ............ .. {22}

你知道有什么算法可以有效地做到吗?

0 个答案:

没有答案