решить Задано сообщение , состоящее из букв алфавита {a, b, c, d, e, f, g, h, i}.

1) Построить для данного алфавита равномерный код. Определить размер сообщения при равномерном кодировании.

2) Построить код Хаффмена. Найти эффективность кода.

D1manch1k D1manch1k    1   27.10.2020 07:05    74

Ответы
vitaly10 vitaly10  12.01.2024 14:24
Хорошо, давайте разберем этот вопрос по шагам.

1) Построим равномерный код для данного алфавита. Равномерный код состоит из кодовых слов, где каждое кодовое слово имеет одинаковую длину.

Для начала, определим количество символов в алфавите. В данном случае, у нас есть 9 букв в алфавите {a, b, c, d, e, f, g, h, i}. Поэтому, мы можем использовать двоичную систему счисления, так как это наиболее распространенный вариант равномерного кодирования.

Переведем число 9 в двоичную систему счисления:

9 = 2^3 + 2^0 = 1001

Теперь каждой букве из алфавита сопоставим двоичный код, начиная с 000 и продолжая до 1000. Таким образом, получим следующие равномерные кодовые слова для каждой буквы:

a - 000
b - 001
c - 010
d - 011
e - 100
f - 101
g - 110
h - 1110
i - 1111

Размер сообщения при равномерном кодировании можно определить, умножив длину сообщения на длину каждого кодового слова и сложив результаты. Например, если сообщение состоит из 10 букв, то размер сообщения будет:

10 * 3 (длина кодовых слов) = 30 бит

2) Теперь построим код Хаффмена для данного алфавита. Код Хаффмена - это метод оптимального префиксного кодирования, где более часто встречающиеся символы имеют более короткие кодовые слова.

Сначала, упорядочим символы алфавита по частоте их появления в сообщении:

1. a - 1 раз
2. b - 2 раза
3. c - 3 раза
4. d - 4 раза
5. e - 5 раз
6. f - 6 раз
7. g - 7 раз
8. h - 8 раз
9. i - 9 раз

Теперь построим дерево Хаффмена, объединяя два самых часто встречающихся символа и добавляя их суммарную частоту в качестве нового символа. Продолжим этот процесс, пока не получим дерево, в котором все символы являются листьями.

___
+---| i | (9)
|
_______|______
| |
+---| g | (7) |
| | |
______|___ ___|____
| | | |
+--| h | (8) | | +----| f | (6)
| | | | | |
| | ________|______ | | |
| | | | | | |
| | | ___|____ | | |
| | | | | | | |
+--| 4| | +--| d | (4) || | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | ___|_|___| |
| | | | | | | | |
| | | | | | +--| e | (5) | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | ___|____|
| | | | | | | | | |
| | | | | | | | +--| c | (3) |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | ___|____
| | | | | | | | | | | |
| | | | | | | | | | +--| b | (2) |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | ___|____
| | | | | | | | | | | | | |
| | |
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика