Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборник задач по дисциплине «Информатика». Методические указания к проведению практических занятий по дисциплине «Информатика», для студентов первого
.pdf
Задача
Число А
Разрядность
машинного
слова
1
100 8 2
-110 8 3
120 8 4
-80 8 5
60 8 6
-111 8 7
101 8 8
-91 8 9
87
16
10
-8000
16
11
9000
16
12
-10000
16
13
16000
16
14
-777
16
15
2015
16
16
-999
16
Задача
Число А
Разрядность
машинного
слова
1 7 16
2
-12
16
3
15
16
4
-24
16
5
31
16
6
-45
16
7
63
16
8
-67
16
9
127
16
10
-130
16
11
135
16
12
-150
16
13
200
16
14
-220
16
15
250
16
16
-255
16
4. Задания для выполнения практической работы
«Представление данных в ЭВМ»
4.1. Записать десятичное число А в формате слова со знаком и фиксированной точ-
кой в машинное слово заданной разрядности.
Таблица 4.1.
4.2. Записать десятичное число А в формате с плавающей точкой со смещѐнным поряд-
ком. Для записи порядка использовать 7 разрядов, а для записи мантиссы – 8 разрядов. Один
разряд использовать для записи знака числа
Таблица 4.2.
31

Домашнее задание
1. Записать отрицательное целое число, состоящее из четырѐх последних цифр
зачѐтки, в формате с фиксированной точкой в машинное слово, состоящее из 16 разрядов.
2. Записать положительное число в форме с плавающей точкой. Мантисса числа
образована из трѐх последних цифр зачѐтки. Порядок числа состоит из первой и второй цифры зачѐтки.
Размер машинного слова выбрать минимальным, но достаточным для размещения числа.
32

Практическая работа № 5
«Сжатие информации методом RLE»
1. Цель работы
Получить представление о методе сжатия информации путѐм учѐта повторений.
2. Связь с другими темами практических работ
Данная практическая работа опирается на первую практическую работу и необходима
для понимания принципа работы прикладного программного обеспечения. Работа совместно
с последующими работами позволяет понять принципы кодирования информации.
3. Теоретические сведения и расчѐтные формулы
Идея архивации методом RLE состоит в учѐте того факта, что в файлах часто встречаются несколько подряд идущих одинаковых байтов, а некоторые последовательности байтов
повторяются многократно. При архивации такие места файла можно заменить командами
вида «повторить данный байт n раз» или «взять часть данных длиной k байтов, которая
встречалась m байтов назад». Такой алгоритм архивации носит имя RLE (Run Length Encod-
ing — кодирование путѐм учѐта повторений).
Понять идею этого метода упаковки позволяет следующий анекдот.
Один в прошлом известный полководец решил написать достаточно объѐмные мемуары. Составленные воспоминания звучали примерно так.
«Утром я вскочил на своего коня и помчался в штаб армии. Подковы коня издавали
звуки «цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок …». Через двое
суток я соскочил с коня и вошѐл в штаб».
Для увеличения объѐма «литературного произведения» словосочетание «цок» было написано «писателем» на двухстах страницах. Очевидно, что информативность «мемуаров» не
изменилась бы, если вместо 200 страниц перечисления цокающих звуков было бы указано:
«Затем следуют 64 000 раз звуки «цок-цок».
Рассмотрим детально основную идею метода архивации RLE.
Упакованная методом RLE последовательность состоит из управляющих байтов, за
которыми следуют один или несколько байтов данных. При этом если старший бит управляющего байта равен 1, то следующий за ним байт данных нужно повторить при распаковке
столько раз, сколько указано в оставшихся 7 битах управляющего байта.
Например, управляющий байт 10001001 говорит, что следующий за ним байт нужно
повторить 9 раз, так как 10012 = 910.
Если старший бит управляющего байта равен 0, то при распаковке архива нужно взять
несколько следующих байтов без изменений. Число байтов, которые берутся без изменений,
указывается в оставшихся 7 битах. Например, управляющий байт 00000011 говорит, что следующие за ним 3 байта нужно взять без изменений.
Рассмотрим пример архивации методом RLE.
Пример 1.
Выполнить сжатие сообщения «ИНН 22223133333» методом RLE.
33

Текст
Десятичный код
(таблица CP-
1251)
Двоичный
код
Архив
И
200
11001000
00000001 Н 205
11001101
11001000 Н 205
11001101
10000010
Пробел
32
00100000
11001101 2 50
00110010
00000001 2 50
00110010
00100000 2 50
00110010
10000100 2 50
00110010
00110010 3 51
00110011
00000010 1 49
00110001
00110011 3 51
00110011
00110001 3 51
00110011
10000101 3 51
00110011
00110011 3 51
00110011 3
51
00110011
.154,1
13
15
c
K
Решение
Таким образом, пятнадцать байт исходного текста сжаты до тринадцати байт. Коэффициент сжатия в данном случае составил:
Для облегчения проверки правильности формирования архива желательно вычислить
контрольную сумму. Для еѐ формирования нужно выполнить операцию Исключающее ИЛИ
над одноимѐнными разрядами архива. В данном примере контрольная сумма в двоичной
системе счисления составила 10100111. Перевод в шестнадцатеричную СС даѐт число А7Н.
34

Задача
Текст
1
Кредитка 2235555666122
2
Паспорт 25700000333215
3
ИНН 78888255555488856
4
Пароль 177775556666612
5
Пароль abcWWWWZZZq
6
Автомобиль 78999994441
7
Алло это 4565555544488
8
Удостоверение 265444111
9
Счѐт 95122244445333333
10
Касса 1478885555233333
11
Прошло 11100002 секунд
12
Пролетели 82223333352 м
13
Вес 1597555553333331 кг
14
Цена 2598888666611 коп
15
Мощность 3574444555 Вт
16
Выиграл 10000555 рублей
4. Задания для выполнения практической работы
«Сжатие информации методом RLE»
4.1. Выполнить сжатие заданного текста методом RLE. Вычислить коэффициент
сжатия и контрольную сумму.
Табл. 5.1.
Домашнее задание
Выполнить сжатие номера зачѐтки методом RLE.
35

1 100%
H
L
n
n
2
1
log
N
ii
i
H p p
i
p
i
i
p
m
2 2 2 2
4 4 3 3 2 2 1 1
log 2 log log 4 log 2,781
16 16 16 16 16 16 16 16
H
1
41
16 4
p
Практическая работа № 6
«Сжатие информации методом Шеннона-Фано»
1. Цель работы
Получить представление о методе сжатия информации путѐм использования префиксных кодов.
2. Связь с другими темами практических работ
Данная практическая работа опирается на первую и пятую практические работы Сборника и необходима для понимания принципа работы прикладного программного обеспечения. Работа совместно с последующими работами позволяет понять принципы кодирования
информации.
3. Теоретические сведения и расчѐтные формулы
Задачу экономного кодирования сообщений источника, имеющего отличное от равномерного распределения вероятностей появления символов его алфавита, позволяют решить
неравномерные префиксные коды.
Рассмотрим принцип построения кода методом Шеннона-Фано. Построение кода основываются на статистических свойствах источника сообщений. При этом часто встречающимся символам алфавита ставят в соответствие короткие кодовые комбинации. Из-за того, что
разным символам алфавита соответствуют кодовые комбинации разной длины, такие коды
называют неравномерными, префиксными. Префиксным кодом называется множество таких двоичных последовательностей, что ни одна последовательность в этом множестве не
является началом другой последовательности.
В качестве примера сжатия методом Шеннона-Фано рассмотрим процедуру архивации
сообщения «ИНН 637322757237». Данный текст содержит избыточность, которая определяется по формуле:
,
где H- энтропия сообщения;
- длина кодовой комбинации при равномерном кодировании.
Энтропия сообщения вычисляется по формуле:
,
где N- число символов в алфавите сообщения;
- относительная частота (вероятность) появления символа в сообщении.
Относительная частота встречаемости символа определяется как отношение абсолютной частоты появления символа в сообщении к общей длине сообщения (числу символов в
сообщении):
,
где i - абсолютная частота (частость) встречаемости i-ого символа алфавита источника; m – число символов в сообщении.
В данном случае энтропия сообщения равна:
бит/символ,
где
- относительная частота появления символа «7»;
36

23
3
16
pp
4
21
16 8
p
5 6 7 8
1
16
p p p p
2
lognN
x
8256log
2
n
%23,65%100
8
781,2
1L
Символ
Абсолютная часто-
та i
Символ
Абсолютная частота
i
7 4 5 1 2 3 6 1 3 3 И 1 Н
2
Пробел
1
- относительная частота появления символов «2» и «3»;
- относительная частота появления символа «Н»;
- относительная частота появления символов «5», «6», «И», Пробел.
При использовании равномерного кода (например, СР-1251) длина кодовой комбинации определяется так:
,
- функция округления аргумента до ближайшего целого значения, не меньшего,
чем x.
В данном примере
бит.
Избыточность сообщения при кодировании равномерным кодом равна:
.
На первом этапе построения кода Шеннона-Фано формируется таблица абсолютных
частот символов.
Для получения кодовых комбинаций строится кодовое дерево. При формировании кода
Шеннона-Фано дерево строится от корня к листьям (в отличие от настоящего дерева здесь
корень располагается вверху, а листья – внизу). В качестве корня используется множество
всех символов алфавита сообщения, упорядоченное (ранжированное) по частоте встречаемости символов. Число сверху таблицы указывает на количество символов в исходном сообщении (см. следующий рисунок).
Затем множество символов делят на два подмножества так, чтобы новые подмножества
имели равные (насколько это возможно) суммарные частоты встречаемости входящих в них
символов. Например, вес 11 желательно разделить на два подмножества 5 и 6, деление на
подмножества 4 и 7 будет ошибочным. Два новых подмножества соединяются с корнем дерева ветвями, становясь потомками. Левая ветвь дерева обозначается символом 1, а правая
ветвь – символом 0.
Полученные подмножества рекурсивно делятся до тех пор, пока не будут сформированы листья дерева – отдельные символы сообщения.
37

Символ
Кодовая комбина-
ция
Символ
Кодовая комби-
нация
7
11
5
0011
2
10
6
0010
3
011
И
0001
Н
010
Пробел
0000
45
2,813
16
n
Кодовые комбинации (на предыдущем рисунке они указаны в кавычках под соответствующими листьями) получаются при движении от корня дерева к кодируемому символулисту путѐм объединения (конкатенации) бит, присвоенных пройдѐнным ветвям дерева. Запись кодовой комбинации ведут в направлении от старших разрядов к младшим. Например,
при кодировании символа «3» сначала следует пройти по правой ветви к множеству {3, Н, 5,
6, И, Пробел}. При этом в кодовую комбинацию нужно записать бит 0. Затем нужно пройти
по левой ветви к множеству {3, Н} (к кодовой комбинации добавляется бит 1). Наконец,
нужно пройти по левой ветви, чтобы достичь листа «3». Таким образом, получена кодовая
комбинация «011».
При декодировании биты считываются из входного потока и используются, как указатели направления движения по кодовому дереву от корня к искомому листу. При достижении листа найденный символ записывается в выходной поток, а движение по кодовому дере-
ву снова начинают от корня. Например, декодирование комбинации «010» происходит следующим образом. Из потока данных считывается бит 0, следовательно, нужно пройти по
правой ветви от корня дерева к узлу {3, Н, 5, 6, И, Пробел}. Следующий бит единичный, что
требует пройти по левой ветви к множеству {3, Н}. Наконец, следующий бит 0 приводит декодер по правой ветви к листу «Н».
В следующей таблице приведены все разрешѐнные комбинации полученного кода
Шеннона-Фано. Это так называемый словарь сообщения. Он передаѐтся на приѐмную сторону вместе с архивом.
нии – 16):
Закодированное сообщение будет иметь вид:
000101001000000010011110111010110011111001111
Общая длина закодированного сообщения составляет 45 бит.
Средняя длина кодовой комбинации равна (напомним, что число символов в сообще-
бит/символ.
Избыточность сообщения после архивации снизилась до значения:
38

2,781
1 100% 1,13%
2,813
L
.
Несложно убедиться, что применение кода Шеннона-Фано позволило существенно
уменьшить избыточность сообщения. При равномерном кодировании рассмотренного сообщения с помощью кодовой таблицы CP-1251 пришлось бы передать не 45 бит, а 128 бит.
39

За-
дача
Текст
1
Анекдот – это комедия, спрессованная в секунды.
2
Кто ничего не имеет, всегда готов поделиться с другими.
3
Иногда большая часть побеждает лучшую.
4
Культура – это умение материться без мата.
5
Чем длиннее руки у рыбака, тем меньше веры его рассказам.
6
Когда женщина ярка, она чаще всего к тому же и шумлива.
7
Диплом позволяет ошибаться значительно увереннее.
8
Телеграфный столб никогда не поймѐт принцип работы телеграфа
9
Стадо легче погонять, чем заворачивать.
10
Ни одно доброе дело не остаѐтся безнаказанным.
11
Лучше быть предметом зависти, чем сострадания.
12
Острить и занимать деньги нужно внезапно.
13
Тот, кто не разбирается ни в чѐм, может взяться за что угодно.
14
Кто ясно мыслит, тот ясно излагает.
15
Срочное слишком часто путают с важным.
16
Монолог – это беседа начальника с подчинѐнным.
4. Задания для выполнения практической работы
«Сжатие информации методом Шеннона-Фано»
4.1. Выполнить сжатие заданного текста методом Шеннона-Фано. Вычислить ко-
эффициент сжатия.
Домашнее задание
Выполнить сжатие номера зачѐтки методом Шеннона-Фано.
Табл. 6.1.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
