Каков способ создания списка n-кортежей в C++? Я хотел бы генерировать, учитывая массив чисел, все возможные п-кортежи элементов из этого массива:Список n-кортежей в C++
В Mathematica это делается с помощью: например
Tuples[{0, 1, 2}, 3]
генерирует:
0,0,0
0,0,1
0,0,2
0,1,0
0,1,1
0,1,2
0,2,0
0,2,1
0,2,2
1,0,0
...
2,2,2
В Python это делается с помощью (см How to create N-tuples in Python?)
list(product(range(0, 2), repeat=3))
Однако я cá Не знаю, как это сделать на C++. Я хотел бы иметь массив [0,1, ..., num] и генерировать n-кортежей назначенной длины.
Возможно, на C++ можно использовать std :: next_permutation или некоторые вложенные?
вам действительно нужен кортеж ли? Похоже, 2d вектор будет работать на вас. – NathanOliver
просто идея: может быть, вы можете использовать рекурсивную функцию, чтобы написать ее самостоятельно? – supinf
2-й вектор был бы идеальным! Однако мой вопрос заключается в том, как сгенерировать приведенную выше последовательность, возможно, наиболее эффективным способом. Рекурсивная функция - это именно то, что я хочу сделать ... но я не могу понять, как это сделать. – Galuoises