庫存算法ķ(從一組尺寸的Ñ)(例如,如這裏所描述:generate all subsets of size k from a set)趨向於使用「字典」順序,其中最左邊的元素變化最慢。我還發現一個算法,可以最小化枚舉中連續子集之間的差異,有點像Gray code。大小k的所有子集,最大化的子集之間的差值,用於枚舉大小的所有子集
我想在每個步驟生成一個子集,它最大的不同於之前的所有子集。 (這是不同爲「最大化連續子集之間的差值」作爲問題的先前配方)。例如,考慮從一組大小爲8的大小爲4的子集,一個可接受的順序開始
ABCD
EFGH
AB GH
CDEF
AB EF
CD GH
請注意,基本集足夠大,以至於容納 n C k內存中的項是不切實際的。
你讓我意識到我錯誤地闡述了這個問題。請參閱編輯。 (這個差異只有在比例較大時纔會變得明顯,你的解決方案在set * n *和set * n * + 2之間沒有提供足夠大的間隔) – zwol