![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 27.11.2015
Сообщений: 9
|
![]()
Доброго всем!
По вопросу нашел много примеров на Си и JAVA, но мне это не помогло. Пытаюсь самостоятельно что-то выдумать. Вот начальный код: PHP код:
Как быть дальше? Насколько я понял метод Хаффмана предполагает сжатие данных за счет уменьшения количества бит, которыми закодированы символы. А если узлов в дереве получилось более 300, то и на один символ будет приходиться соответствующее количество битов. В общем дальше мне непонятно. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 254
|
![]()
т.е. Вы получили частоты символов. Первый шаг сделан правильно. Осталось построить дерево и таблицу Хаффмана. Т.к. кодирование производится по таблице, а декодирование по дереву. Примеры нашли - это хорошо, а смысл метода (теоретически) не уяснили - плохо.
О смысле здесь...
помогать студентам - моя вторая профессия
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 27.11.2015
Сообщений: 9
|
![]()
was3110, спасибо за ответ.
В последнем своем действии в коде я и попытался построить дерево. Складывал два символа с наименьшим повторением и записывал значение в массив. Суммируемые символы записывал как ключ, а вхождения как значение. Структура полученного массива: Символ1Символ2 => Сумма повторений, Символ1Символ2Символ3 => Сумма повторений, и т. д. Далее, насколько я понял, нужно пройтись по этому массиву от элемента с самой высокой общей суммой вхождений до первого по упорядоченному порядку, параллельно присваивая символам либо 0 либо 1. Если я это сделаю в полученном массиве то множество символов будут закодированы кодом длинной более 8 бит. Это вообще возможно? Либо я неправильно построил дерево, либо не понял правило прохода по нему. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сжатие jpeg. Стандартные таблицы Хаффмана. | stragger | Общие вопросы C/C++ | 4 | 13.05.2013 16:17 |
Кодирование Модифицированным методом Хаффмана | diallfam | Visual C++ | 1 | 28.01.2013 08:56 |
Архиватор методом Хаффмана на Delphi | Natka.Elka | Помощь студентам | 5 | 07.12.2011 20:05 |
Реализация кодирования методом Хаффмана на Pascal | Azarat | Помощь студентам | 3 | 06.12.2010 09:34 |
Сжатие информации методом Хаффмана на С++ | BaSoff | Общие вопросы C/C++ | 3 | 18.11.2009 19:51 |