Изменения

Перейти к: навигация, поиск

Получение номера по объекту

3 байта убрано, 07:42, 24 декабря 2011
Описание алгоритма
Номер данного [[Комбинаторные объекты|комбинаторного объекта]] равен количеству меньших в [[Лексикографический порядок|лексикографическом порядке]] комбинаторных объектов (нумерацию ведём с 0). Все объекты меньшие данного можно разбить на непересекающиеся группы по длине совпадающего префикса. Тогда количество меньших объектов можно представить как сумму количеств объектов у которых префикс длины <tex>i</tex> совпадает, а <tex>i+1</tex> элемент лексикографически меньше <tex>i+1</tex>-го в данном объекте (<tex>i = 0..n-1</tex>).
Следующий алгоритм вычисляет эту сумму
*numOfObject''' {{---}} искомый номер комбинаторного объекта.
*a[1..n] {{---}} данный комбинаторный обьект.
*d[i][j] - (количество комбинаторных объектов с префиксом от 1 до <tex>i-1</tex> равным данному и с <tex>i</tex>-м элементом равным <tex>j</tex>)
Анонимный участник

Навигация