РГР КН-106

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ІНСТИТУТ КОМП’ЮТЕРНИХ НАУК ТА ІНФОРМАЦІЙНИХ


ТЕХНОЛОГІЙ
НАЦІОНАЛЬНОГО УНІВЕРСИТЕТУ «ЛЬВІВСЬКА
ПОЛІТЕХНІКА»
Кафедра САПР

Графічно-розрахункова робота
з дисципліни: “ Алгоритмізація та програмування, ч. 2”

Виконав:
Студент групи КН-106
Бойко Назарій

Прийняв:
Професор кафедри САПР
Андрійчук М. І

Львів-2021 р.
Завдання №1. Машина Тюрінга
2. A = {0,1,2}. Вважаючи непорожнє слово P записом числа в трійковій системі
числення, визначити, чи є воно парним числом чи ні. Відповідь: 1 (так) або 0.
(Зауваження: в парному трійковому числі має бути парна кількість цифр 1.)

Розв’язок:

Табл. 1. Алгоритм програми

Q1 Q2 Q3
0 0 > Q1 0 > Q2 0 > Q3
1 1 > Q2 1 > Q3 1 > Q1
2 2 > Q1 2 > Q2 2 > Q3
[ _] 0 > STOP [_] | Q1 1 > STOP

Рис.1.1. Вигляд програми

Рис.1.2. Результат програми


Завдання № 2. Нормальні алгоритми Маркова
2. A = {f, h, p}. У слові P замінити на f тільки першу пару ph, якщо така є.

Табл. 2. Алгоритм програми

Зразок Заміна
1 *f → f*
2 *h → h*
3 *ph → f.
4 *p → P*
5 ** → .
6 → *

Розв’язок:

Рис.2.1. Вигляд програми

Рис.2.2. Результат алгоритму


Завдання № 3. Кодування методом Шенона-Фано
2. Закодувати використовуючи коди Шенона-Фано алфавіт {*, ?, !, &, $, +, /, #}, який
складається із символів з такими ймовірностями {13%, 5%, 10%, 5%, 29%, 13%, 10%,
15%}.
1. Сортуємо алфавіт по спаданню ймовірності

Табл. 3.1. Відсортований алфавіт

№ Символ Ймовірність
1 $ 29
2 # 15
3 * 13
4 + 13
5 ! 10
6 ? 10
7 & 5
8 ? 5

2. Розділяємо алфавіт на 2 рівноймовірні групи

Табл. 3.2. Розділений алфавіт

№ Символ Ймовірність Сума


1 $ 29 44
2 # 15
3 * 13 56
4 + 13
5 ! 10
6 ? 10
7 & 5
8 ? 5

3. Кодуємо алфавіт використовуючи коди Шенона-Фано.

Табл.3.3. Кодування методом Шенона-Фено

Алфавіт Ймовірність, % Коди


$ 29 0 0 00
# 15 1 01
* 13 0 0 100
+ 13 1 1 101
! 10 1 0 110
/ 10 1 111
& 5 1 1 0 1110
? 5 1 1111
Завдання № 4. Кодування методом Хаффмана
2. Алфавіт складається з двох букв А і Б, які мають ймовірності p(А)= 0,8 і p(Б)= 0,2.
Проведіть кодування за методом Хаффмана трибуквених слів, які можна утворити.
1. Складаємо список усіх можливих трибуквених слів з двох букв А, Б.
Табл.4.1. Список можливих трибуквених слів з двох букв А і Б

№ Символ Ймовір.
1 ААА 0.512
2 ААБ 0.128
3 АББ 0.032
4 АБА 0.128
5 БББ 0.008
6 ББА 0.032
7 БАА 0.128
8 БАБ 0.032
2. Сортуємо список за спаданням ймовірності.

Табл.4.2. Відсортований список трибуквених слів

№ Символ Ймовір., %
1 ААА 51.2
2 ААБ 12.8
3 АБА 12.8
4 БАА 12.8
5 АББ 3.2
6 БАБ 3.2
7 ББА 3.2
8 БББ 0.8

3. Проводимо кодування за методом Хаффмана.

Табл.4.3. Кодування методом Хаффмана


4. Другим кроком виконуємо кодування, "проходячи" по таблиці справа наліво.

Табл.4.4. Кодування методом Хаффмана

Табл.4.5. Результат кодування

Символ ААА ААБ АБА БАА АББ БАБ ББА БББ


Код 0 100 101 110 11100 11101 11110 11111

You might also like