Пусть сочетания отсортированы лексикографически, то есть
Код:
N K1 K2
1 01 02
2 01 03
3 01 04
4 01 05
5 01 06
...
841 21 32
842 21 33
843 21 34
844 21 35
...
1324 50 51
1325 50 52
1326 51 52
Пусть
номер сочетания из списка выше.
Тогда номер первой карты
Номер второй карты
Наверняка там можно изящней записать всё.
Обратно (номер сочетания по входящим в него картам) тоже можно посчитать.
Сперва сортируем карты по возрастанию, т.е. если даны карты
то
и
Ну дальше понятно: считаем смещение
где начинаются сочетания с первой картой, к нему прибавляем модуль разности т.е.
получаем номер сочетания как
Ну это легко если сочетание из двух карт.
Если больше чем двух - думать надо.
Но общая тема такая, что сортируем (нумеруем) сочетания в лексикографическом порядке, перед этим в самих сочетаниях сортируя карты по возрастанию.