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