我正在尝试提出一种算法,您可以在其中从集合中按顺序生成组合,以使它们的总和按递增顺序排列。该集合必须是多集,即允许重复。
例如,您有一个集合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}
你知道有什么算法可以有效地做到吗?