
- •7.080202 - Прикладна математика
- •7.080201 - Інформатика
- •3.1. Приклади розв’язання задач...................................................................10
- •Вимоги до написання індивідуальної роботи
- •Індивідуальна робота №3 на тему „Логіка предикатів”
- •Індивідуальна робота №4 на тему „Теорія алгоритмів”
Індивідуальна робота №4 на тему „Теорія алгоритмів”
4-ий семестр,Модуль 2
Приклади розв’язання задач індивідуальної роботи №4
Завдання 1 (3 бали). Вкажіть послідовність дій та проілюструйте основні характерні риси (дискретність, визначеність, масовість, результативність) на прикладі алгоритму: додавання натуральних чисел.
Розв’язання׃
Даний алгоритм передбачає наступну послідовність дій:
Потрібно записати числа одне під одним так, щоб число одиниць було одне під одним, це стосується і десятків, сотень і т. д.
Якщо сума
, то число записуємо під одиницями та переходимо до іншого розряду; якщо сума
, то цифру одиниць записуємо під одиницями, а цифру десятків додаємо до наступних двох цифр.
Дискретність даного алгоритму полягає в тому, що для виконання алгоритму потрібно виконати відповідні кроки дискретно в часі. Тобто спочатку потрібно вірно розмістити числа, а потім їх додати згідно вказаних правил.
Визначеність - наступний крок алгоритму визначається попереднім кроком. Тобто перш, ніж додавати числа, потрібно записати їх одне під одним.
Масовість – алгоритм застосовується не до якоїсь конкретної задачі, а до цілого класу задач. Тобто даний алгоритм застосовується для додавання довільних натуральних чисел, а не тільки для додавання, наприклад, чисел 20 та 543.
Результативність полягає в тому, що алгоритм дає конкретний результат – суму даних натуральних чисел.
Завдання 2 (3 бали). Вказати всі функції, які можна отримати із вказаних функцій в результаті однократного застосування оператора підстановки:
.
Розв’язання׃
Застосуємо оператор підстановки наступним чином:
;
.
Відповідь׃
в результаті однократного
застосування оператора підстановки до
функцій
,
та
отримали дві функції
і
.
Завдання 3 (5 балів). Знайти
функцію, яка отримується в результаті
застосування оператора примітивної
рекурсії до двох даних функцій:
.
Розв’язання׃
Застосуємо
оператор примітивної рекурсії до функцій
та
:
;
;
;
,
якщо так продовжувати далі, то очевидно,
що отримаємо:
.
Отже, в
результаті застосування оператора
примітивної рекурсії до двох даних
функцій, отримали функцію
.
Відповідь׃ .
Завдання
4 (5 балів). Довести, що дана функція
є обчислюваною за Тьюрінгом, та написати
програму машини Тьюрінга, яка її обчислює:
.
Розв’язання׃
Покажемо, що існує машина Тьюрінга, яка обчислює значення даної функції.
Можна запропонувати наступну програму машини Тьюрінга:
S\Q |
q0 |
q1 |
1 |
1Пq0 |
|
|
1Пq1 |
! |
де S – це множина символів з якими працює машина Тьюрінга ( - пробіл, порожній символ, та 1); Q – множина внутрішніх станів, у яких перебуває машина Тьюрінга.
Перевіримо, чи обчислює машина Тьюрінга
значення функції
.
Нехай змінна
(
),
тоді початкова стрічка машини Тьюрінга
матиме вигляд:
1.
|
|
/\ 1 |
1 |
|
|
|
q0
Тепер застосуємо програму до даної стрічки. Оскільки покажчик /\ вказує на комірку стрічки, в якій знаходиться символ „1” в стані q0, то згідно програми машини Тьюрінга, потрібно замінити даний символ на „1” та перейти вправо на одну комірку в стан q0, тобто виконати 1Пq0. Маємо:
2.
|
|
1 |
/\ 1 |
|
|
|
q0
В даному випадку покажчик знову вказує на комірку стрічки, в якій знаходиться символ „1” в стані q0. Тому знову потрібно виконати 1Пq0. Маємо:
3.
|
|
1 |
1 |
/\ |
|
|
q0
Покажчик вказує на комірку стрічки, в якій знаходиться порожній символ „ ” в стані q0. Отже, потрібно виконати 1Пq1, тобто замінити символ „ ” на „1” та перейти вправо на одну комірку в стан q1. Маємо:
4.
|
|
1 |
1 |
1 |
/\ |
|
q1
Покажчик вказує на комірку стрічки, в якій знаходиться порожній символ „ ” в стані q1, тобто потрібно виконати „!” – зупинити роботу машини Тьюрінга. Отже, результатом дії машини Тюрінга є значення, що = 3.
Тобто функція є обчислюваною за Тюрінгом. А програма, яка її обчислює, запропонована вище.
Завдання
5 (4 бали). Довести, що дана функція
є обчислюваною за Марковим, та написати
нормальний алгоритм Маркова, який її
обчислює:
.
Розв’язання׃
Покажемо, що існує нормальний алгоритм Маркова, який обчислює значення даної функції.
Нехай маємо алфавіт
,
де
- пробіл, порожній символ. Тоді згідно
даного алфавіту можна запропонувати
наступний алгоритм додавання 1 до
значення
:
( тобто „+” замінюється
на порожній символ).
Перевіримо, чи обчислює даний нормальний
алгоритм Маркова значення функції
.
Нехай змінна
приймає значення 4 (
),
тоді дану функцію в алфавіті
можна записати у вигляді слова
:
.
Знайдемо результат дії алгоритму
на слово
.
Оскільки символ „+”, згідно алгоритму,
замінюється на порожній символ, то тоді
маємо:
.
Отже, функція є обчислюваною за Марковим. Нормальний алгоритм Маркова, який її обчислює, це .
Варіанти завдань індивідуальної роботи №4
Завдання 1 (3 балів). Вкажіть послідовність дій та проілюструйте основні характерні риси (дискретність, визначеність, масовість, результативність) на прикладі алгоритму:
1. Знаходження суми двох багатоцифрових чисел;
2. Знаходження різниці двох багатоцифрових чисел;
3. Знаходження добутку двох багатоцифрових чисел;
4. Знаходження неповної частки і остачі двох багатоцифрових чисел;
5. Знаходження НСД двох натуральних чисел;
6. Знаходження НСК двох натуральних чисел;
7. Розкладу натурального числа в добуток простих множників;
8. Перевірки, чи є натуральне число простим;
9. Знаходження всіх простих чисел, що не перевищують заданого натурального числа;
10. Знаходження n-го простого числа;
11. Переведення запису натурального числа із десяткової в сімкову систему числення;
12. Переведення запису натурального числа із сімкової в десяткову систему числення;
13. Переведення запису натурального числа із вісімкової у двійкову систему числення;
14. Переведення запису натурального числа із двійкової у вісімкову систему числення;
15. Розв’язування лінійного рівняння з одним невідомим;
16. Розв’язування лінійної нерівності з одним невідомим;
17. Розв’язування квадратного рівняння;
18. Розв’язування квадратної нерівності;
19. Розв’язування системи двох лінійних рівнянь із двома невідомими методом Гаусса;
20. Розв’язування системи двох лінійних рівнянь із двома невідомими методом Крамера;
21. Розв’язування системи двох лінійних рівнянь із двома невідомими матричним методом;
22. Розв’язування системи трьох лінійних рівнянь із трьома невідомими методом Гаусса;
23. Розв’язування системи трьох лінійних рівнянь із трьома невідомими методом Крамера;
24. Розв’язування системи трьох лінійних рівнянь із трьома невідомими матричним методом;
25. Знаходження кута між векторами, якщо відомі їхні координати відносно прямокутної системи координат;
26. З’ясування, чи є три вектори компланарними, якщо відомі їхні координати відносно прямокутної системи координат;
27. З’ясування, чи є вектори лінійно незалежними, якщо відомі їхні координати відносно деякого базису;
28. З’ясування взаємного розміщення двох прямих на площині, якщо відомі їх загальні рівняння;
29. З’ясування взаємного розміщення двох площин у просторі, якщо відомі їх загальні рівняння;
30. Поділу відрізка пополам за допомогою циркуля і лінійки.
Завдання 2 (3 бали). Вказати всі функції, які можна отримати із вказаних функцій в результаті однократного застосування оператора підстановки:
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.
Завдання 3 (5 балів). Знайти функцію, яка отримується в результаті застосування оператора примітивної рекурсії до двох даних функцій:
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.
Завдання 4 (5 балів). Довести, що дана функція є обчислюваною за Тьюрінгом, та написати програму машини Тьюрінга, яка її обчислює:
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
Завдання 5 (4 бали). Довести, що дана функція є обчислюваною за Марковим, та написати нормальний алгоритм Маркова, який її обчислює:
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;