Поделитесь своими знаниями, ответьте на вопрос:
решить Задано сообщение , состоящее из букв алфавита {a, b, c, d, e, f, g, h, i}. 1) Построить для данного алфавита равномерный код. Определить размер сообщения при равномерном кодировании. 2) Построить код Хаффмена. Найти эффективность кода.
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) |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | ___|____
| | | | | | | | | | | | | |
| | |