Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 21:46   #1
Dimanw92
Пользователь
 
Регистрация: 23.09.2008
Сообщений: 25
По умолчанию генерация следующей перестановки в лексикографическом порядке.

помогите написать программу, генерирующую следующую перестановку в лексикографическом порядке, если изначальная перестановка уже задана
Dimanw92 вне форума Ответить с цитированием
Старый 26.09.2011, 21:57   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
генерирующую следующую перестановку
Перестановка коней в вакууме?
Цитата:
если изначальная перестановка уже задана
Не понял какое это имеет значение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 26.09.2011, 22:05   #3
Dimanw92
Пользователь
 
Регистрация: 23.09.2008
Сообщений: 25
По умолчанию

есть некая перестановка из n целых чисел, например 1,2,3. надо написать программу, которая выводит на экран следующую в лексикографическом порядке перестановку, то есть 1,3,2.
Dimanw92 вне форума Ответить с цитированием
Старый 26.09.2011, 23:19   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну и в чём сложность? Поиск не работает? Или не знаете, как реализовать алгоритм?

ОЧЕНЬ рекомендую статью на algolist -
Методы программрования: переборные алгоритмы


а вот цитата отсюда - РАЗМЕЩЕНИЯ. ПЕРЕСТАНОВКИ. СОЧЕТАНИЯ
Цитата:
*
Перестановки из n элементов - частный случай размещения элементов из Е по k, при k=n. Иными словами, перестановками называют размещения без повторений из n элементов, в которые входят все элементы. Можно также сказать, что перестановками из n элементов называют всевозможные n-расстановки, каждая из которых содержит все эти элементы по одному разу, и которые отличаются друг от друга лишь порядком элементов.

Число перестановок вычисляется по формуле:
Pn=Ann=n·(n-1)·...·2·1=n!

Алгоритм генерации перестановок в лексикографическом порядке:

1. Просматриваем а1, ..., аn с конца до тех пор, пока не попадется ai<ai+1. Если таковых нет, то генерация закончена.
2. Рассматриваем ai+1, ai+2, ..., an. Найдем первый с конца am больший ai и поменяем их местами.
3. ai+1, ai+2, ..., an переставим в порядке возрастания (для этого достаточно её переписать с конца).
4. Печатаем найденную перестановку.
5. Возвращаемся к пункту 1.


Первой при этом будет перестановка <1, 2, ..., n>, последней - <n, ..., 2, 1>.
это же можно тут - "Решения: Переборные задачи" прочитать (более "разжёвано"). Решение задачи 1.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг следующей строки Fok Общие вопросы Delphi 4 12.09.2010 17:26
Прогамма должна выполнять сортировку имен в лексикографическом порядке методом Хоора и Шелла. ser_b Помощь студентам 2 27.05.2010 21:26
Переход к следующей песне Волк Мультимедиа в Delphi 4 27.05.2009 17:00
отсортировать таблицу сначала в алфавитном порядке фамилий продавцов, затем в порядке возростания получен Lora Microsoft Office Excel 1 31.05.2008 17:22