如何在未知尺寸的二维矢量中打印每行组合

时间:2018-07-30 07:32:28

标签: arrays multidimensional-array vector combinations

我有一个vector_of_vectorsvector_of_vectors的大小为x,每个内部向量的大小为y(所有内部向量的大小也相同)。我希望能够打印所有可能的行组合,而不会出现任何重复。我认为,如果知道行长(vector_of_vectors的大小)(假设大小为8),那么该算法将相当简单,那么我可以硬编码...:

// Using pseudocode...
// This chunk is in a loop
print (vector_of_vectors[0][counter1]);
print (vector_of_vectors[1][counter2]);
print (vector_of_vectors[2][counter3]);
print (vector_of_vectors[3][counter4]);
print (vector_of_vectors[4][counter5]);
print (vector_of_vectors[5][counter6]);
print (vector_of_vectors[6][counter7]);
print (vector_of_vectors[7][counter8]);
print ("\n");

然后遍历此代码,递增一个counter,直到达到其关联的内部向量的大小为止,然后递增下一个并重置当前的一个(如数字时钟)。

但是由于我不知道vector_of_vectors的大小,所以我什至不能明确地写出这段代码。这可能被误认为是重复项,因为似乎有一个here解决方案,但是它实际上只是覆盖了我已经解释过的理论,并且旨在了解最外层向量的大小,而我没有。还尝试了一种解决方案here,但是此解决方案使用的数字的大小(列大小)^(行大小)在我的程序的最极端情况下为62 ^ 16,这已经超出了64位整数(2 ^ 64),并且需要128位整数。总体而言,这也使我有些困惑,所以我希望找到一种更优雅的解决方案,或者至少可以更好地解释它。

欢迎使用迭代和递归解决方案,但首选迭代,因为我的2D向量在大约62 x 16处最大,得出62 ^ 16个可能的唯一组合,我想它将在其解决方案中消耗大量内存。

我知道这最终将取决于两个嵌套循环,一个受内部向量的大小约束,另一个受vector_of_vectors的大小约束,但是我不知道如何实现它

0 个答案:

没有答案