Изменения
Нет описания правки
'''else'''
'''then''' ans[i]=j
Несложно понять, что корректность алгоритма следует из его построения.
Сложность алгоритма <tex>O(nkf(1..i)) </tex>, где <tex>f(1..i)</tex> - сложность вычисления количества комбинаторных объектов с данным префиксом. Основную сложность при построении алгоритмов генерации комбинаторных объектов составляет вычисление количества комбинаторных объектов с данным префиксом. Приведем примеры способов получения некоторых из [[Комбинаторные объекты|комбинаторных объектов]] по номеру.
*<tex>alreadyWas</tex> {{---}} сколько цифр уже полностью заняты перестановками с меньшим номером
*мы должны поставить ту цифру, которая еще полностью не занята, то есть <tex>alreadyWas+1</tex> - ую, которой еще нет в нашем префиксе, пусть считаем, что это цифра <tex>j</tex>
'''for''' i = 1 '''to''' n '''do'''
alreadyWas = (numOfPermutation-1) div <tex>P_{n-i} </tex>