股票算法用于枚举所有大小为k的子集(从大小为N的集合中)(例如,如此描述:generate all subsets of size k from a set)以使用“字典顺序”,其中最左边的元素变化最慢。我还发现了一种算法,可以使枚举中连续子集之间的差异最小,有点像格雷码。
相反,我希望在每一步中生成一个与所有先前的子集最不同的子集。(这与先前的问题陈述中的“最大化连续子集之间的差异”不同。)例如,考虑从大小为8的集合中选择4个元素的子集,一种可接受的排序方式开始
请注意,基础集合足够大,以至于在内存中保存nCk个项目是不切实际的。
相反,我希望在每一步中生成一个与所有先前的子集最不同的子集。(这与先前的问题陈述中的“最大化连续子集之间的差异”不同。)例如,考虑从大小为8的集合中选择4个元素的子集,一种可接受的排序方式开始
ABCD
EFGH
AB GH
CDEF
AB EF
CD GH
请注意,基础集合足够大,以至于在内存中保存nCk个项目是不切实际的。