可以说我有整数向量V = {0,1,...,N-1}的大小N.生成从整数矢量大小为k的下一个组合
for example: k = 2, N = 10
{0,1}, {0,2}, ..., {0,9}, {1,2}, ..., {8,9}
的给定大小k ,我想生成v的所有K-大小的组合
但我想这样做,一个接一个,使用一个名为NextCombination方法:,
bool NextCombination(vector<int>& v, int k, int N){
if(is not the last combination){
turn v into it's next combination
return true;
}
return false;
}
这意味着给v的当前状态,组合的大小k和e的总数lement,我想改变v(如果可能的话),并返回一个布尔值,表明它有可能从v得到一些下一个组合
我想不出如何做到这一点,没有一些无聊的递归,这只是我正在做的一个小问题,我想找出一些聪明/小解决方案。
你能给出你想解决的问题更广泛的描述吗? – PazO
从v中获得下一个组合的含义是什么? –
我的意思是,如果K = 2和N = 4,i相矢量{0,1}就nextCombination将变成{0,2},然后进入{0,3},则{1,2},则{ 1,3},然后{2,3},最后返回false – Daniel