Алгоритм Нарайаны
Этот онлайн-калькулятор реализует алгоритм Нарайаны для генерации следующей перестановки в лексикографическом порядке
Этот онлайн калькулятор иллюстрирует работу нерекурсивного алгоритма Нарайаны для генерации перестановок в лексикографическом порядке. Вы вводите элементы начальной перестановки, разделенные запятыми, и количество итераций алгоритма (перестановка, полученная на предыдущей итерации, является начальной перестановкой следующей итерации). Данные по умолчанию - перестановка 1,2,3 и количество итераций 6 генерируют все возможные перестановки из трех элементов (три факториал) и возвращают к начальной перестановке.
Это иллюстрирует тот факт, что если алгоритм Нарайаны применить в цикле к исходной последовательности из элементов
, упорядоченных так, что
, то он сгенерирует все перестановки элементов множества
в лексикографическом порядке1.
Описание алгоритма можно прочитать под калькулятором.
Алгоритм Нарайаны
- Найти такой наибольший
, для которого
.
- Увеличить
. Для этого надо найти наибольшее
, для которого
. Затем поменять местами
и
.
- Записать последовательность
в обратном порядке.
Алгоритм придуман индийским математиком Пандитом Нарайаной в XIV веке.
Комментарии