Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2.doc
Скачиваний:
15
Добавлен:
07.03.2016
Размер:
332.29 Кб
Скачать

2. Построение оптимальных кодов. Алгоритмы сжатия данных

I. Блок индивидуальных заданий.

2.1. Кодирование методом Хаффмана.

(30 баллов)

Цель: научиться генерировать коды Хаффмана и пользуясь ими (кодировать/ раскодировать) заданный текст.

Задание: а) перед вами список символов, из которых состоит закодированный текст и вероятность каждого символа в тексте. Пользуясь этой информацией, сгенерируйте коды Хаффмана и расшифруйте закодированный в соседней колонке текст. Подсчитайте коэффициент сжатия. Определите, каким бы мог быть максимальный коэффициент сжатия, пользуясь теоремой Шеннона (предполагая, что мы выделяем–log2(p) бит на каждый символ, гдеp – вероятность этого символа. б) выберите самостоятельно текст для кодирования (не менее 10 символов). Определите статистику символов и их вероятности. Сгенерируйте коды Хаффмана. Закодируйте текст с помощью этих кодов. Определите коэффициент сжатия. Определите, каким бы мог быть максимальный коэффициент сжатия и сравните его с полученным.

Вариант

Символы и их вероятности

Закодированное слово

«т»-0.15; «а»-0.15; «л»-0.15; «о»-0.15; «м»-0.08; «е»-0.08; «п»-0.08; «р»-0.08; «к» - 0.08.

10100000010100110111000001110100111010001

«о»-0.36; «д»-0.09; «б»-0.09; «р»-0.09; «в»-0.09; «л»-0.09; «ь»-0.09; «н»-0.09;

0011101010111010010010000000011

«а»-0.25; «о»-0.17; «р»-0.17; «л»-0.08; «б»-0.08; «т»-0.08; «н»-0.08; «я»-0.08;

10010110111000011000110000010010011

«и»-0.23; «о»-0.15; «я»-0.15; «р»-0.08; «г»-0.08; «з»-0.08; «л»-0.08; «д»-0.08; «ц»-0.08;

0001101100011011100000011001001011110010

«о»-0.31; «д»-0.08; «р»-0.08; «г»-0.08; «с»-0.08; «т»-0.08; «я»-0.08; «щ»-0.08; «и»-0.08; «й»-0.08;

00010111101100101101100001110000000100011

«е»-0.15; «л»-0.15; «т»-0.15; «и»-0.15; «р»-0.08; «б»-0.08; «с»-0.08; «к»-0.08; «а»-0.08;

10101100100101101000011000000010100110111

«а»-0.18; «о»-0.18; «р»-0.18; «л»-0.09; «б»-0.09; «т»-0.09; «и»-0.09; «я»-0.09;

010100101110110010100101100000001

«с»-0.23; «н»-0.15; «к»-0.08; «у»-0.08; «т»-0.08; «в»-0.08; «е»-0.08; «и»-0.08; «ы»-0.08; «й»-0.08;

000010000111110100101010011001101100100011

«и»-0.23; «е»-0.15; «р»-0.08; «п»-0.08; «о»-0.08; «д»-0.08; «ч»-0.08; «с»-0.08; «к»-0.08; «й»-0.08;

111011000110010101001011001100000010100011

«р»-0.14; «а»-0.14; «и»-0.14; «н»-0.14; «о»-0.07; «ц»-0.07; «л»-0.07; «ь»-0.07; «ы»-0.07; «й»-0.07;

0111111010001101100011010100010000010110001001

«и»-0.33; «м»-0.08; «с»-0.08; «т»-0.08; «ф»-0.08; «к»-0.08; «а»-0.08; «ц»-0.08; «я»-0.08;

011110001001110010100000110010010101

«а»-0.17; «н»-0.17; «ц»-0.08; «и»-0.08; «о»-0.08; «р»-0.08; «л»-0.08; «ь»-0.08; «ы»-0.08; «й»-0.08;

0110110011010101111011010000101000000001

«с»-0.25; «и»-0.25; «е»-0.12; «п»-0.06; «м»-0.06; «т»-0.06; «ч»-0.06; «к»-0.06; «й»-0.06;

1001110000001101101001010011000110001110011111

«о»-0.27; «р»-0.09; «п»-0.09; «в»-0.09; «л»-0.09; «ч»-0.09; «н»-0.09; «ы»-0.09; «й»-0.09;

1010011011110111001100001000000001

«а»-0.25; «з»-0.08; «м»-0.08; «р»-0.08; «и»-0.08; «н»-0.08; «о»-0.08; «в»-0.08; «т»-0.08; «ь»-0.08;

000101111011001101100011000000100100011

«и»-0.27; «с»-0.18; «м»-0.09; «т»-0.09; «ч»-0.09; «е»-0.09; «к»-0.09; «й»-0.09;

10101000111011101000000010010011

«р»-0.18; «и»-0.18; «г»-0.09; «е»-0.09; «с»-0.09; «т»-0.09; «а»-0.09; «ц»-0.09; «я»-0.09;

10010100010010110100100000110001111

«и»-0.27; «е»-0.09; «р»-0.09; «в»-0.09; «ф»-0.09; «к»-0.09; «а»-0.09; «ц»-0.09; «я»-0.09;

1110011101011100110000100000010001

«е»-0.18; «р»-0.18; «п»-0.09; «с»-0.09; «т»-0.09; «о»-0.09; «й»-0.09; «к»-0.09; «а»-0.09;

00011000110010101100101000000110111

«е»-0.18; «о»-0.18; «в»-0.18; «л»-0.09; «м»-0.09; «з»-0.09; «с»-0.09; «т»-0.09;

010001100100101011011000000011110

«е»-0.25; «р»-0.17; «т»-0.17; «с»-0.08; «м»-0.08; «о»-0.08; «п»-0.08; «ь»-0.08;

00100111011001101100000011010000011

«е»-0.33; «н»-0.17; «р»-0.08; «в»-0.08; «д»-0.08; «п»-0.08; «ы»-0.08; «й»-0.08;

0100101011011110110100000000100011

«о»-0.27; «р»-0.18; «у»-0.09; «б»-0.09; «т»-0.09; «п»-0.09; «в»-0.09; «д»-0.09;

11000010111101100000010010010011

«б»-0.18; «о»-0.18; «с»-0.09; «п»-0.09; «е»-0.09; «д»-0.09; «н»-0.09; «ы»-0.09; «й»-0.09;

10011000101010010100001100000110111

«а»-0.36; «р»-0.18; «т»-0.09; «б»-0.09; «щ»-0.09; «и»-0.09; «н»-0.09;

01011000101110000100001000111

«а»-0.27; «т»-0.27; «р»-0.09; «с»-0.09; «н»-0.09; «е»-0.09; «ц»-0.09;

01000100100110101001000110111

«о»-0.27; «н»-0.18; «с»-0.09; «т»-0.09; «р»-0.09; «п»-0.09; «и»-0.09; «й»-0.09;

10001101111011100100000000100011

«е»-0.18; «р»-0.18; «о»-0.18; «г»-0.09; «п»-0.09; «д»-0.09; «к»-0.09; «а»-0.09;

011001100010101111011010000000001

«п»-0.18; «о»-0.18; «е»-0.18; «р»-0.09; «д»-0.09; «б»-0.09; «н»-0.09; «ы»-0.09; «й»-0.09;

10010100011000101100101000000110111

«е»-0.27; «р»-0.18; «п»-0.09; «в»-0.09; «н»-0.09; «у»-0.09; «т»-0.09; «ь»-0.09;

10101000011110100011010000100011