
- •Р.М.Літнарович, ю.Г.Лотюк комп’ютерна алгебра навчально-методичний посібник
- •© Літнарович р.М., Лотюк ю.Г.,2010 р.
- •1. Програма нормативної дисципліни
- •2. Мета та завдання дисципліни,
- •3. Формування практичних навичків
- •4. Зміст дисципліни
- •4.1.Лекції, найменування тем за їх змістом
- •6.Перелік питань до заліку
- •7.Науково-дослідна робота студентів
- •8. Літературні джерела
- •9.Розподіл балів за один змістовий модуль, присвоюваних студентам
- •10.Шкала оцінювання:
- •11.Зміни та доповнення ,внесені в робочу програму на 201__ рік
- •12.Оцінка навчальної діяльності студента
- •2. Лекційний курс Лекція 1. (2 год.)
- •1.1 Коротка характеристика gap
- •1.2 Можливості для роботи з різними видами об'єктів алгебри
- •1.3 Приклади простих обчислень
- •2 Мова програмування gap
- •2.1 Символи і категорії слів в gap
- •2.2 Ключові слова
- •2.3 Ідентифікатори
- •2.4 Вирази
- •2.5 Звернення до функцій
- •2.6 Порівняння виразів
- •2.7 Арифметичні оператори
- •2.8 Привласнення
- •2.9 Виклик процедури
- •2.10 Команда if
- •2.11 Цикл while
- •2.12 Цикл repeat
- •2.13 Цикл for
- •2.14 Функції
- •3 Структури даних
- •3.1 Константи і оператори
- •3.2 Змінні і привласнення
- •3.3 Функції
- •3.4 Списки
- •3.5 Тотожність і рівність списків
- •3.6 Множини
- •3.7 Вектори і матриці
- •3.8 Записи
- •3.9 Арифметичні прогресії
- •3.10 Використання циклів
- •3.11 Подальші операції із списками
- •3.12 Функції
- •4 Операції над групами і їх елементами
- •4.1 Завдання групи підстановок
- •4.2 Завдання підгрупи групи підстановок
- •4.3 Прості властивості групи. Силовськие підгрупи.
- •4.4 Інші види підгруп
- •4.5 Факторгруппи
- •Список літератури, що рекомендується
- •Додаток а Рекомендації по створенню і запуску програм в системі gap
- •1. Створюємо за допомогою текстового редактора файл "prog.G" наступного змісту:
- •2. Зберігаємо цей файл в каталозі, вибраному з урахуванням рекомендацій параграфа 1.2.
- •3. Запустимо gap і визначимо файл протоколу log.Txt:
- •Лабораторна робота № 1. Основи роботи з системою gap в Windows
- •Лабораторна робота № 2 Списки. Цілі числа
- •Завдання для лабораторної роботи № 2
- •Лабораторна робота № 3. Лінійні програми. Вектори і матриці
- •Завдання для лабораторної роботи № 3
- •Лабораторна робота № 4. Програми, що гілкуються. Многочлени
- •Лабораторна робота № 5. Циклічні програми (цикл for). Бінарні відносини
- •Лабораторна робота № 6. Циклічні програми (цикл while). Підстановки
- •Лабораторна робота № 7. Циклічні програми (цикл repeat). Групи підстановок
- •Завдання для лабораторної роботи № 7
- •Лабораторна робота № 8. Вивчення властивостей елементів групи
- •Завдання для лабораторної роботи № 7
- •Лабораторна робота № 9. Вивчення властивостей підгруп групи.
- •Завдання для лабораторної роботи № 9.
- •Лабораторна робота № 10. Робота з бібліотекою кінцевих груп
- •Додаткові завдання
- •33027 Рівне , Україна
Лабораторна робота № 5. Циклічні програми (цикл for). Бінарні відносини
Дана лабораторна робота призначена для вивчення оператора циклу FOR на прикладі роботи з бінарними відносинами.
Докладні відомості по даних темах містяться: - в розділі "Мова програмування GAP" <file:///d:\ Комп'ютерна%20алгебра\metgap43\3-data.htm> даної методичної допомоги (див. п.2.13); - в розділі "Бінарні стосунки в GAP" <file:///d:\ Комп'ютерна%20алгебра\metgap43\tppmsgs\msgs0.htm> учбових матеріалів до курсу алгебри і теорії чисел; - в розділі "Relations" довідкового керівництва за системою GAP <file:///d:\ Комп'ютерна%20алгебра\metgap43\tppmsgs\msgs0.htm>.
Приклад: Розробити функцію, вхідним параметром якої є бінарне відношення r, задане на множині з n елементів, а вихідним - квадратна матриця M порядку n, в якій mij=1, якщо i r j, і mij=0 інакше (таким чином, M - матриця смежностей орієнтованого графа, відповідного бінарному відношенню r).
Дане завдання вирішується таким чином. Спочатку ми визначаємо порядок безлічі N, на якій задано бінарне відношення r, і будуємо нульову матрицю m відповідного розміру за допомогою функції Nullmat. Потім за допомогою функції Successors ми отримуємо список s, i-й елемент якого є списком номерів тих елементів безліч N, яка знаходиться в бінарному відношенні r з i-м елементом. Для заміни потрібних елементів нульової матриці одиницями ми перебираємо елементи отриманого списку s. При цьому i-й елемент списку s визначає, які елементи i-й рядка матриці m мають дорівнювати одиниці - на одиницю замінюються ті елементи i-й рядка матриці m, які лежать в стовпцях з номерами із списку s[i]:
Matrixofbinaryrelation:=function(r) local s, n, m, i, j; n := Degreeofbinaryrelation( r ); m := Nullmat( n, n ); s := Successors( r ); for i in [ 1 .. Length(s)] do for j in s[i] do m[i][j]:=1; od; od; return m; end; Звернете увагу на форматування програми (виділення циклів за допомогою відступів), а також на те, що перебирати можна не тільки числа із заданого діапазону (як в зовнішньому циклі), але і всі елементи із заданого списку (як у внутрішньому циклі).
Після введення даної програми задамо випадковим чином бінарне відношення на множині з п'яти елементів: gap> r:=randombinaryrelationonpoints(5); Binary Relation on 5 points
Отримаємо його опис за допомогою функції Successors:
gap> Successors(r); [ [ 1, 2, 4 ], [ 1, 3, 4, 5 ], [ 3, 5 ], [ 2, 4, 5 ], [ 2, 3, 4 ] ]
Тепер обчислимо його матрицю суміжності і переконаємося в правильності отриманого результату, зіставивши номери рядків і стовпців, в яких знаходяться одиниці, з результатом Successors(r):
gap> Display( Matrixofbinaryrelation( r )); [ [ 1, 1, 0, 1, 0 ], [ 1, 0, 1, 1, 1 ], [ 0, 0, 1, 0, 1 ], [ 0, 1, 0, 1, 1 ], [ 0, 1, 1, 1, 0 ] ]
Обчислимо матрицю суміжності для мінімального симетричного бінарного відношення, що містить задане, і переконаємося в її симетричності щодо головної діагоналі: gap> Display( Matrixofbinaryrelation( Symmetricclosurebinaryrelation( r ))); [ [ 1, 1, 0, 1, 0 ], [ 1, 0, 1, 1, 1 ], [ 0, 1, 1, 0, 1 ], [ 1, 1, 0, 1, 1 ], [ 0, 1, 1, 1, 0 ] ]
Обчислимо матрицю суміжності для мінімального симетричного бінарного відношення, що містить задане, і переконаємося в тому, що всі елементи на її головній діагоналі дорівнюють одиниці: gap> Display( Matrixofbinaryrelation( Reflexiveclosurebinaryrelation( r ))); [ [ 1, 1, 0, 1, 0 ], [ 1, 1, 1, 1, 1 ], [ 0, 0, 1, 0, 1 ], [ 0, 1, 0, 1, 1 ], [ 0, 1, 1, 1, 1 ] ]
Тепер перевіримо, що матриця відношення тотожності є одиничною: gap> Display( Matrixofbinaryrelation( Identitybinaryrelation( 5 ))); [ [ 1, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0 ], [ 0, 0, 1, 0, 0 ], [ 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 1 ] ]
Таким чином, розроблена функція працює коректно. Завдання для лабораторної роботи № 5
Варіант 1. Розробити функцію, яка для заданого бінарного відношення повертає бінарне відношення, що є його запереченням.
Варіант 2. Розробити функцію, яка для двох заданих бінарних стосунків повертає бінарне відношення, що є їх перетином.
Варіант 3. Розробити функцію, яка для двох заданих бінарних стосунків повертає бінарне відношення, що є їх об'єднанням.
Варіант 4. Розробити функцію, яка для двох заданих бінарних стосунків повертає бінарне відношення, що є різницею першого і другого стосунків.
Варіант 5. Розробити функцію, яка для двох заданих бінарних стосунків повертає бінарне відношення, що є композицією першого і другого стосунків.
Варіант 6. Розробити функцію, яка для заданого бінарного відношення повертає зворотне до нього бінарне відношення.
Варіант 7. Розробити функцію, яка для двох заданих бінарних стосунків перевіряє, чи є перше з них підмножиною другого.
Варіант 8. Розробити функцію, яка повертає бінарне відношення, відповідне заданому розбиттю безлічі перших n натуральних чисел. Варіант 9. Розробити функцію, яка повертає список всіх впорядкованих пар, що належать заданому бінарному відношенню.
Варіант 10. Розробити функцію, яка для заданого бінарного відношення r повертає список елементів x, для яких виконується умова x r x.
Варіант 11. Розробити функцію, яка для заданого бінарного відношення r повертає список всіх впорядкованих пар елементів (x,y), для яких одночасно виконуються умови x r у і у r x.
Варіант 12. Розробити функцію, яка для заданого бінарного відношення r повертає список всіх впорядкованих пар елементів (x,y), таких що яких виконується умова x r у, але не виконується умова у r x. Варіант 13. Розробити функцію, яка для заданого бінарного відношення r повертає список всіх впорядкованих пар елементів (x,y), таких що яких виконується умова x r у, і елементи x і у не збігаються.
Варіант 14. Розробити функцію, яка для заданого бінарного відношення визначає мінімальний набір впорядкованих пар, які потрібно виключити з бінарного відношення для того, щоб воно стало антирефлексивним.
Варіант 15. Розробити функцію, яка для заданого бінарного відношення визначає мінімальний набір впорядкованих пар, які потрібно виключити з бінарного відношення для того, щоб воно стало асиметричним.
Варіант 16. Розробити функцію, яка для заданого бінарного відношення визначає мінімальний набір впорядкованих пар, які потрібно виключити з бінарного відношення для того, щоб воно стало антисиметричним.
Варіант 17. Розробити функцію, яка повертає область визначення заданого бінарного відношення.
Варіант 18. Розробити функцію, яка повертає область значення заданого бінарного відношення.