Я пытаюсь сгенерировать все комбинации A, B, C, D, E в трех положениях:
A,A,A
A,A,B
C,A,E
C,B,A
C,B,B
etc...
Я узнал о факторных системах счисления и комбинаторных системах счисления, но я все еще не могу найти правильную реализацию. Обычно в прошлом я использовал рекурсию для решения этой проблемы, но в этом случае я не хочу генерировать весь список, чтобы найти одно значение, поэтому мне нужна кодировка.
В идеале у меня есть целочисленная кодировка для комбинаций, поэтому я могу просто вызвать функцию с целым числом итераций для генерации правильной перестановки.
Кроме того, как это называется и как я могу узнать больше о вариациях в подходах? Некоторые похожие решения, которые я видел, генерируют только неповторяющиеся комбинации (ABC, ABD), другие не используют значения повторно.
Мое предположение, основанное на моем прошлом подходе к рекурсии, заключается в том, что permutation(0)
приведет к aaa
, а permutation(100)
приведет к adw
.