Я пытаюсь создать последовательность длины «k» из заданного массива «n» элементов, так что каждый токен/цифра в «k» появляется только один раз.
Например. если мой входной массив равен {1,2,3,4,5} и "k = 4", то с использованием последних 4 цифр генерируется последовательность, и сгенерированная последовательность может быть
1,2,3,4,5
1,2,3,5,4
1,2,4,3,5
1,2,4,5,3
...
...
ПРИМЕЧАНИЕ. Здесь нельзя использовать первый индекс, поскольку нам не разрешено изменять значение этого индекса.
Другой например. входной массив = {1,2,3,4,5} и k="3", затем с использованием последних 3 цифр сгенерированная последовательность
1,2,3,4,5
1,2,3,5,4
1,2,4,3,5
1,2,4,5,3
1,2,5,3,4
1,2,5,4,3
На первый взгляд кажется, что вопрос относится к простой форме теории чисел или комбинаторике, но я не могу понять, к кому. Заранее извиняюсь, если вопрос слишком тривиален.
Мне кажется, что это можно сгенерировать, используя несколько циклов for, где количество циклов = k, а ввод - это последнее k число последовательности, но во время выполнения я не знаю значение k, поэтому мне нужно какое-то обобщенное решение, и есть ли любым способом/алгоритмом для генерации цифр с уменьшенной сложностью.
Я также видел некоторые похожие вопросы, которые уже задавались, но моя цель - получить какой-то обобщенный или лучший подход.