Лаба по дискретке. Лабораторная 2 дискретная математика. Отчет п о лабораторной работе 1 вариант 9 по дисциплине дискретная математика
Скачать 44.52 Kb.
|
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования Иркутский национальный исследовательский технический университет
Использование языковых средств программирования для задач теории множеств.
Иркутск 2022 г. Лабораторная работа №2. Построение матриц бинарных отношений. Цели работы: Изучить способы численного моделирования матрицы бинарного отношения и разработать компьютерную программу для построения матрицы бинарного отношения на двух заданных числовых множествах Задание на выполнение ЛР Составить компьютерную программу для построения матриц бинарных отношений, соответствующих вашему варианту. Программа должна предусматривать два способа введения множества А, на котором задано бинарное отношение: а) генерировать случайную последовательность входных данных, упорядочивать поля с входными данными по возрастанию, б) ручной ввод множества А; затем динамически строить булеву матрицу заданного отношения, проверять, является ли данное отношение полным, диагональю, рефлексивным, симметричным, антисимметричным, транзитивным. Отношение: a = b + 2 Алгоритм: 1) Создаем матрицу из случайных чисел, а количество элементов матрицы выбирает человек. Далее проверяем симметричность, рефлексивность, антисимметричность и транзитивность. 2) Создаем матрицу задавая через enter числа. Далее проверяем симметричность, рефлексивность, антисимметричность и транзитивность. Генерируем массив из случайных чисел. С помощью созданного массива выводим матрицу на экран Проверяем симметричность\ антисимметричность Проверяем на рефлексивность\ не рефлексивность Проверяем транзитивность Выводим на экран ответ Пользователь вводит элементы множества Создаем массив из заданных элементов С помощью заданного массива выводим матрицу на экран Проверяем симметричность\ антисимметричность Проверяем на рефлексивность\ не рефлексивность Проверяем транзитивность Выводим на экран ответ Программа: import random print("Если нужно сгенерировать случайную последовательность введите 1") print("Если нужно ввести вручную последовательность введите 2") what = int(input("")) mnojestvo = [] massiv = [] Flag = 0 if what == 1: while len(mnojestvo) != 5: a = random.randint(1, 9) if a not in mnojestvo: mnojestvo.append(a) mnojestvo.sort() print(" ", *mnojestvo) for i in range(0, len(mnojestvo)): massiv = [] for j in range(0,len(mnojestvo)): if (mnojestvo[i] - mnojestvo[j]) % 3 == 0 and (mnojestvo[i] - mnojestvo[j]) != 0: massiv.append(1) Flag = 1 else: massiv.append(0) print(mnojestvo[i], *massiv) print("Не рефлексивно") print("Симметрично") if Flag == 0: print("Не транзитивно") else: print("Транзитивно") if what == 2: while True: a = (input("")) if a == "*": break if a not in mnojestvo: mnojestvo.append(int(a)) mnojestvo.sort() print(" ", *mnojestvo) for i in range(0, len(mnojestvo)): massiv = [] for j in range(0, len(mnojestvo)): if (mnojestvo[i] - mnojestvo[j]) % 3 == 0 and (mnojestvo[i] - mnojestvo[j]) != 0 : massiv.append(1) Flag = 1 else: massiv.append(0) print(mnojestvo[i], *massiv) print("Не рефлексивно") print("Симметрично") if Flag == 0: print("Не транзитивно") else: print("Транзитивно") Тесты: 1) 2) 3 ) |