Розділ 1. КОДУВАННЯ ІНФОРМАЦІЇ ТА ПЕРЕТВОРЕННЯ КОДІВ. Скласти шестизначне число, яке складається з отриманих за допомогою кодової таблиці кодів 1-ої, 2-ої та 8-ої літер прізвища. При цьому перші 3 цифри відповідають цілій частині числа, а останні - дробовій. Вважаючи це число десятковим, перевести його до шістнадцяткової, вісімкової та двійкової систем числення з точністю відповідно 3, 3 та 5 розрядів після коми. Кодова таблиця (В-4) Таблиця 1.1.1
Друга цифра Перша цифра
2 4 7 5 3 1
7 А Б В Г Д Е
9 Є Ж З И І Ї
6 Й К Л М Н О
8 П Р С Т У Ф
1 Х Ц Ч Ш Щ Ю
3 Я Ь
За допомогою кодової таблиці четвертого варіанту (таблиця 1.1.1) ставимо у відповідність першим 8 різним літерам власного прізвища (при необхідності ? ім’я та по-батькові) двозначні числа, при цьому літери не можуть повторюватись. СОРОКЕВИЧ МАКСИМ ІГОРОВИЧ
Кодова таблиця Таблиця 1.1.2
С О Р К Е В И Ч
78 16 48 46 17 77 59 71
Таким чином визначаємо 8 двозначних кодів, які відповідають 8 літерам, і заносимо їх у таблицю 1.1.2. Запишемо складене з отриманих за допомогою кодової таблиці кодів 1-ої, 2-ої та 8-ої літер прізвища шестизначне число: X(10) = 781.671 Переводимо його до шістнадцяткової системи. Спочатку цілу частину: :16
781
48 13
3 0
0 3
X(16)ціл = 30D. *16
671
A 736
B 776
C 416
6 656
Тепер переводимо дробову частину: Після округлення до трьох знаків після коми, отримаємо: X(16)дроб = 0.ABC Отже наше число, переведене в шістнадцяткову систему матиме вигляд: X(16) = 30D.ABC Переводимо число з шістнадцяткової системи до двійкової методом тетрад, а методом тріад – до вісімкової (таблиця 1.1.3). Таблиця переведення Таблиця 1.1.3
Отже отримане вісімкове число, округлене до трьох розрядів після коми має вигляд: X(8) = 1415.530 Двійкове число, округлене до п’яти розрядів після коми: X(2) = 1100001101.10101 Скласти шестизначне число, яке складається з отриманих за допомогою кодової таблиці кодів 1-ої, 2-ої та 8-ої літер прізвища. При цьому перші 3 цифри відповідають цілій частині числа, а останні – дробовій. Вважаючи це число шістнадцятковим, перевести його до десяткової, вісімкової та двійкової систем числення з точністю відповідно 3, 3 та 5 розрядів після коми. Число в шістнадцятковій системі: X(16) = 781.671 1.2.1. Переведення до десяткової системи числення: X(10) = 162*7 + 161*8 + 160*1 + 16-1*6 + 16-2*7 + 16-3*1(1921.403 X(10 )= 1921.403 1.2.2. Переведення до двійкової системи числення способом тетрад (таблиця 1.2.1). (16) ( (2) Таблиця 1.2.1
7 8 1 6 7 1
0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1
X(2) = 11110000001,01101 1.2.3. Переведення до вісімкової системи чисення способом тріад (таблиця 1.2.2). (2) ( (8) Таблиця 1.2.2
0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1
3 6 0 1 3 1 6 1
X(8) = 3601.316 Скласти шестизначне число, яке складається з отриманих за допомогою кодової таблиці кодів 1-ої, 2-ої та 8-ої літер прізвища. Вважаючи це число десятковим, перевести його до системи числення залишкових класів із мінімально необхідною кількістю основ 2, 3, 5, 7, 11, ... . Після цього зробити зворотне переведення отриманого результату до десяткової системи числення. Складене число: X(10) = 781671 Базис: {2,3,5,7,11,13,17,19} 1.3.1. Переведення числа з десяткової системи числення до системи числення залишкових класів (СЗК): 1. 781671/2=390835, залишок [1]; 2. 781671/3=260557, залишок [0]; 3. 781671/5=156334, залишок [1]; 4. 781671/7=111667, залишок [2]; 5. 781671/11=71061, залишок [0]; 6. 781671/13=60128, залишок [7]; 7. 781671/17=45980, залишок [11]; 8. 781671/19=41140, залишок [11]; Отже X(СЗК)=(1,0,1,2,0,7,11,11). 1.3.2. Зворотне переведення в десяткову систему числення: Знаходимо Р=2*3*5*7*11*13*17*19=9696960. Знаходимо ортогональні базиси Вn і перевіряємо їх на ортогональність: Bn=(mk*P)/Pn (1.3.1), де mk?послідовні цілочисельні значення, починаючи від 1. В1=9699690/2=4849845; перевірка: 4849845/2=2424922, залишок [1]. В1 =4849845 В3=2*9699690/5=3879876; перевірка: 3879876/5=775975, залишок [1]. В3 =3879876 В4=6*9699690/7=8314020; перевірка: 8314020/7=1187717, залишок [1]. В4 =8314020 В6=5*9699690/13=3730650; перевірка: 3730650/13=286973, залишок [1]. В6 =3730650 В7=16*9699690/17=9129120; перевірка: 9129120/17=537607, залишок [1]. В7 =9129120 В8=18*9699690/19=9189180; перевірка: 9189180/19=483641, залишок [1]. В8 =9189180 Тоді: Х(10)=(1*4849845+1*3879876+2*8314020+7*3730650+11*9129120+11*9189180)mod 9699690 Х(10)=252973611 mod 9699690=781671 Отже 1,0,1,2,0,7,11,11(СКЗ)= 781671(10) Виконати ефективне кодування визначених літер прізвища, при умові, що отримане за допомогою кодової таблиці число - десяткове і говорить про те, скільки разів у „повідомленні” зустрічається дана літера (при цьому, „повідомлення” складається всього з 8 обраних літер). Визначити ефективність проведеного кодування та порівняти її з ентропією джерела повідомлення і ефективністю рівномірного кодування, тобто з випадком, коли довжина коду для кожної літери одна й та сама. За допомогою отриманих кодів скласти „повідомлення”, яке складається з визначених літер у тій послідовності, в якій вони зустрічаються у прізвищі. Визначити довжину (в бітах) „повідомлення” при ефективному і рівномірному кодуванні. Записуємо до таблиці 1.4.1 коди літер (кількість у „повідомленні”) та імовірності їх появи у „повідомленні”. Імовірність визначаємо за формулою: Pi = Ki/( Таблиця імовірностей Таблиця 1.4.1