【发布时间】:2018-01-17 13:24:34
【问题描述】:
我需要迭代每个可能的元素组合(有重复),最多 n 个元素。
我已经为这个问题找到了多种解决方案。但是所有这些都是递归地生成每个可能组合的集合,然后对其进行迭代。虽然这可行,但对于大型元素集合和组合大小,它会导致大量内存使用,因此我正在寻找一种解决方案,该解决方案允许我从前一个组合计算下一个组合,知道元素的数量和组合的最大大小。
这甚至可能吗?是否有任何特定的算法可以在这里工作?
【问题讨论】:
-
Next Permutation 你是否在与 c++ 中提供的类似行为之后?
-
@SamerTufail 不幸的是没有。我需要遍历组合(元素的顺序无关紧要,组合的顺序应该是可预测的但不是很重要),所以每个排列都应该被视为相同的组合。
-
@fjardon 我必须选择几个满足一组条件的最佳(按目标函数)组合。所以这实际上是优化问题。
标签: algorithm iteration combinations