# 3. Algorithms, Computability, Turing Machine and Finite-state Machine Home Work
## Які завдання виконувати
Оберить будь-які чотире завдання із списку завдань. Оцінюватися будуть лише ці чотире завдання. Бали за завдання ранжовані по складності.
## Алфавіт
Для кожного завдання алфавіт `Λ` обмежує тільки вхідне слово, результат та процес виконання програми можуть використовувати символи, що не входять до `Λ`.
## Формат відповіді
Передбачається, що **во всіх завданнях** машина Тюрінга знаходиться в **стандартній конфигурації**.
Припустим, є два завдання:
* Завдання 1
Нехай `Λ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ∅}`; `P` — не порожнє слово.Потрібно отримати на стрічці запис числа, яке на `1` більше за `P`.
* Завдання 2
Нехай `Λ = {a, b, c, ∅}`; `P` — не порожнє слово. Якщо перший та останній символи`Р` однакові, тоді це слово не змінювати, а інакше замінити його на порожнє слово.
Формат відповіді має відповідати шаблону, описаному [тут](https://docs.google.com/spreadsheets/d/1fAAtKhgaBSWcP74Cjv2R04ywINoEQAmtgebCUIle0c0/edit#gid=0).
Необхідно створити Google Spreadsheets, додати посилання на цей документ як рішення в Google Classroom, переконатися, що маю право на перегляд документа.
## Завдання
### Завдання 1
`Λ = {a, b, c}`. Приписати ліворуч к слову `P` символ `b` (т.е. `P → bP`).
**1 бал**
### Завдання 2
`Λ = {a, b, c}`. Приписать праворуч к слову `P` символы `bc` (т.е. `P → Pbc`).
**1 бал**
### Завдання 3
`Λ = {a, b, c}`. Зʼясувати, чи входить символ `a` до складу `P` .
Повертаємий результат: `1` — якщо входить, `0` — якщо не входить.
**2 бала**
### Завдання 4
`Λ = {a, b, c}`. Замінити на `a` кожний другий символ в слові `P`.
**2 бала**
### Задача 5
`Λ = {a, b, 0, 1}`. Зʼясувати, чи є слово P записом числа в двійковій системі числення (не порожнім словом, що складається тільки із цифр `0` и `1`).
Повертаємий результат: `1` — якщо так, `0` — якщо ні.
**2 бала**
### Завдання 6
`Λ = {0, 1}`. Для не порожнього слова P зʼясувати, чи є воно записом ступеня двійки (`1, 2, 4, 8, ...`) в двійковій системі числення.
Повертаємий результат: `1` — якщо так, `0` — якщо ні.
Передбачається, що слова с незначними нулями, наприклад `000101`, на вхід не подаються.
**2 бала**
### Завдання 7
`Λ = {0, 1}`. Описати машину Т'юрінга, яка розпізнає парну кількість одиниць.
Повертаємий результат: `1` — якщо парна кількість одиниць, `0` — якщо непарна.
Конфігурація машини Тюрінга є стандартною.
**2 бала**
### Завдання 8
`Λ = {a, b}`. Подвоїти слово `P` (наприклад: `abb → abbabb`).
**4 бала**
### Завдання 9
`Λ = {a, b}`. Перевернути слово `P` (наприклад: `abb → bba`).
**4 бала**
### Завдання 10
`Λ = {a, b}`. Подвоїти кожен символ слова `P` (наприклад: `bab → bbaabb`).
**6 балів**
### Завдання 11
`Λ = {(, )}`. Зʼясувати, чи є слово P сбалансованим по дужках.
Повертаємий результат:`1` — якщо так, `0` — якщо ні.
**8 балів**
### Завдання 12
`Λ = {a, b}`. Якщо в `P` символів `a` більше за символів `b`, тоді повернути `a` як результат; якщо символів `a` меньше за символів `b`, тоді повернути `b`; інакше повернути порожнє слово.
**8 балів**