engineerklub | Дата: Понедельник, 28.10.2024, 07:08 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 29399
Статус: Offline
| Дискретная математика - Генерация подмножеств
Тип работы: Работа Лабораторная Форматы файлов: Исполняемые фалы (EXE), Microsoft Word, C Сдано в учебном заведении: ДО СИБГУТИ
Описание: Лабораторная работа № 2 Генерация подмножеств
Задано целое положительное число n, которое представляет собой мощность некоторого множества. Требуется с минимальными трудозатратами генерировать все подмножества этого множества, для чего каждое последующее подмножество должно получаться из предыдущего путем добавления или удаления только одного элемента. Множество и все его подмножества представляются битовой шкалой. Для генерации использовать алгоритм построения бинарного кода Грея. В качестве результата выводить построчно каждое из подмножеств (в виде битовой шкалы), сопровождая их порядковыми номерами. В случае большого количества результирующих строк (превышающего размер экрана) выполнять поэкранную выдачу, а также осуществлять их вывод в файл с выдачей на экран сообщения для пользователя – имя файла, его местонахождение… Алгоритм построения бинарного кода Грея Вход: n 0 – мощность множества. Выход: последовательность кодов подмножеств B (битовая шкала). 1. Инициализация массива В и его выдача на печать. 2. В цикле по i (от 1 до 2 n –1): а) Определение элемента для добавления или удаления: p:=Q(i); б) Добавление или удаление элемента B[p]:=1–B[p]; в) Вывод очередного подмножества – массива B. Функция Q(i) определяется как число, на единицу превышающее количество «2» в разложении числа i на множители. Очевидно, что для нечётных i значение этой функции равно 1, т.е. для нечётного i значение будет менять крайний правый бит шкалы (нумерация справа налево от 1), а для i, равных степени 2, будет «включаться» бит, соответствующий этой степени 2 (например, для 4 – 3-й бит, для 8 – 4-й бит, …). Пример: Выполнение алгоритма для n=3. Дополнительно: множество {a,b,c}.
СКАЧАТЬ
|
|
| |