Как пользоваться Поиском

поиск по сайту
логин

пароль

регистрация     
забыли пароль?

Помощь сайту

Вопросы » Информатика, Логика » Кодирование информации

Кодирование информации

создана: 16.10.2009 в 11:37
................................................

 

:

Как кодировать информацию с помощью двоичного дерева? 

Я в 8-м классе, а учитель дал такое задание.

 ( +1026 ) 
16.10.2009 23:18
Комментировать

Один из методов решения

Алгоритм Хаффмана для двоичной системы


   1. Вычисляем вероятность появления каждого символа в информации

   2. Каждому символу присваивается значение равное его частоте вхождения

   3. Полученный список элементов (пара: символ — значение) сортируется по убыванию: от часто встречаемых к менее встречаемым

   4. Два последних элемента списка объединяются в новый элемент, значение которого равно сумме значений вошедших в него элементов, т.е. вместо двух последних элементов записывается новый

   5. Новый список сортируется по убыванию

   6. Операции 4, 5 выполняются до тех пор, пока не останется один элемент

   7. Выписывается последний оставшийся элемент

   8. От него откладывают две ветви с элементами, которые его составляют

   9. От каждого элемента, если он не является символом, откладываются такие же две ветви с входящими в него элементами

  10. Процесс выполняется до тех пор, пока все элементы не будут выписаны

  11. Каждому ребру назначается коды 0 и 1

  12. Для каждого символа (не элемента) в дереве выписывается префиксный код, как последовательность кодов рёбер идущих от вершины к символу

Рассмотрим построения двоичного и троичного кодовых деревьев по алгоритму Хаффмана.

Кодируемое сообщение: «ГОЛОГРАММА».

Статистика появления символов в сообщении: Г(2), О(2), Л(1), Р(1), A(2), М(2).

Упорядоченный список: A(2), Г(2), М(2), О(2), Л(1), Р(1).




Кодирование в двоичной системе

 

Символ Частота Двоичная система
Префиксный код Длина кода Сумма
А 2 10 2 4
Г 2 11 2 4
М 2 000 3 6
О 2 001 3 6
Л 1 010 3 3
Р 1 011 3 3
      Итого: 26  
 ( +3192 ) 
17.10.2009 20:49
Комментировать

Я то поняла, но в 8-м классе такое задание?

 ( +1026 ) 
16.10.2009 23:25
Комментировать

Код Хаффмена
1. Для заданного текста определить число вхождений каждого символа.
2. Схематически изобразить процесс выполнения алгоритма Хаффмена.
2. Построить упорядоченное дерево Хаффмена, имеющее минимальную высоту из всех деревьев Хаффмена. Надписать узлы дерева (символ(ы), число вхождений).
3. Выписать код Хаффмена для всех символов, входящих в текст.
4. Подсчитать длину закодированного полученным кодом текста.

  Динамическое кодирование по Хаффмену.
Для заданного текста (последовательности символов) схематически изобразить процесс работы кодировщика по методу динамического кодирования по Хаффмену. Для этого:
1. На каждом шагу указать очередной обработанный символ входной последовательности и его код, а также полученное после обработки этого символа кодовое дерево.
2. Первые вхождения символов кодировать с учетом следующих соображений:

   а) «русский» алфавит состоит из символов (исключены символы «ё» и «й», добавлен символ «!» конца последовательности):

а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я !
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

   б) кодом символа алфавита считать двоичное представление номера этого символа в алфавите (от 0 до 31), дополненное, если необходимо, слева нулями до 5-битного кода. Например, код(«а»)=00000, код(«б»)=00001, код(«р»)=01111, код(«!»)=11111.
3.3. Выписать итоговое закодированное сообщение и его длину в битах.

 ( +3192 ) 
18.10.2009 01:49
Комментировать

Прикольный котейко (16 фото)rj

Такое даже коту ученому не под силу.

Хочу написать ответ