Пятница, 10.01.2025, 20:18
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Дискретная математика. Лабораторная работа №3. Все варианты
engineerklubДата: Среда, 03.01.2018, 11:33 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 29399
Репутация: 0
Статус: Offline
Дискретная математика. Лабораторная работа №3. Все варианты

Тип работы: Работа Лабораторная
Форматы файлов: Microsoft Word
Сдано в учебном заведении: СибГУТИ

Описание:
Лабораторная работа № 3 Генерация перестановок

Дано конечное множество A. Требуется сгенерировать все возможные перестановки его элементов в лексикографическом порядке (по материалам главы 1, п. 1.3.6, и главы 2, п. 2.2.1). Требования к заданию множества – в нем не должно быть повторяющихся элементов, кроме того, удобнее использовать или только буквы, или только цифры.

Программа должна сначала упорядочить все элементы заданного множества по возрастанию (это первый – минимальный – набор), затем – посредством МИНИМАЛЬНО ВОЗМОЖНЫХ ПЕРЕСТАНОВОК! – сгенерировать последовательно возрастающие (лексикографически) наборы, вплоть до последнего, в котором все элементы упорядочены по убыванию.

Следует оценивать количество возможных перестановок и в случае, если они не поместятся на экран, выполнять их вывод в файл с выдачей на экран соответствующей информации для пользователя и выполнять поэкранный вывод с ожиданием нажатия клавиши.

Дополнительно: Предоставить пользователю возможность выбора другого варианта работы программы, в котором за исходную точку упорядочивания наборов выбирается не минимальный набор, а набор в таком порядке, как он задан пользователем.

Возможный алгоритм решения (Пример: множество А={1, 2, 3, 4, 5, 6}, |A| = n):

Предположим, что уже построено m наборов. Тогда для получения m+1-го набора:

Выполняется проверка последнего (m-го) набора на наличие в его конце некоторого количества символов, упорядоченных по убыванию – пусть это символы ak+1…an. 
á 3 5 2 6 4 1ñ – k=3, символы с 4-го по 6-й упорядочены по убыванию.
Если такое k найдено, то поменять местами k-й элемент и наименьший элемент из ak+1…an, больший этого ak. 
В нашем примере это 2 и 4: á 3 5 4 6 2 1ñ (это промежуточный набор).
После шага 2 упорядочить элементы с k+1-го до последнего по возрастанию. Получен очередной набор Þ выдать его на печать. 
á 3 5 4 1 2 6ñ.
Если на шаге 1 ответ отрицательный, то поменять местами 2 последних элемента и выдать на печать полученный набор. В частности, после шага 3 это неизбежное действие, т.к. все последние элементы были размещены по возрастанию Þ целесообразно после выполнения ш.3 задавать признак его выполнения, который будет анализироваться (и сбрасываться) на шаге 1. После шага 3 было á 3 5 4 1 2 6ñ Þ выдать á 3 5 4 1 6 2ñ . 
Если был набор á 3 5 2 6 1 4ñ Þ выдать á 3 5 2 6 4 1ñ .
Если полученный набор не последний (упорядоченный по убыванию), то возврат на шаг 1. В противном случае конец работы.

З.Ы. здесь на сайте не корректно отображаются основные операции, видимо проблемы с кодировкой 

Комментарии: Уважаемый слушатель, дистанционного обучения,
Оценена Ваша работа по предмету: Дискретная математика
Вид работы: Лабораторная работа 3
Оценка:Зачет
Дата оценки: 11.01.2014
Рецензия:Уважаемый 

Бах Ольга Анатольевна 

СКАЧАТЬ МОЖНО ЗДЕСЬ
 
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru