У меня есть четыре элемента:
A B C D
Я могу расположить все перестановки n elements
в лексикографическом порядке, поэтому для n=2
:
0=AA 1=AB 2=AC 3=AD ... 15=DD
Как мне, не прибегая к подсчету, вычислить индекс в этом порядке для конкретного элемента?
Когда я перечисляю свои элементы 0=A 1=B 2=C 3=D
и получаю строку string
, я могу вычислить такой индекс для n=2
4 * val(string[0]) + val(string[1])
string="AC" -> 4*0 + 2 = 2
string="DD" -> 4*3 + 3 = 15
Как я могу найти индекс для любой строки и n > 2
? Мне это действительно нужно только для n=2,3,4,5
, но мне кажется, что должно быть общее решение, которого я не вижу?