|
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 359
|
||||||||||
Алгоритм Хаффмана16.12.2014, 01:35. Показов 8051. Ответов 9
Метки нет (Все метки)
Возможно и наболевшая тема на форуме, но всё же есть реализация алгоритма Хаффмана.
Допустим, у меня в файле есть следующая строка:
Также отмечу, что при компиляции с данным файлом, после декодировки я получаю в консоли то же, что и было:
Код: Кликните здесь для просмотра всего текста
0
|
||||||||||
| 16.12.2014, 01:35 | |
|
Ответы с готовыми решениями:
9
Алгоритм Хаффмана Алгоритм Хаффмана Алгоритм Хаффмана |
| 16.12.2014, 01:57 | |||||||
1
|
|||||||
|
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 359
|
|||
| 16.12.2014, 02:39 [ТС] | |||
|
для Вас, наверное) но судя по Вашим:
Добавлено через 7 минут и ведь дальше в коде идёт обратный проход по дереву и восстанавливаются символы Добавлено через 20 минут т.е., как я понимаю, после декодирования файла, он должен иметь аналогичный, с исходным файлом, текст.
0
|
|||
| 16.12.2014, 02:44 | |||
|
К слову, в код ваш не всматривался, но vector, очевидно, неподходящий ADT для Huffman. Посмотрите у Mark Nelson - "Priority Queues and the STL". Добавлено через 1 минуту
1
|
|||
|
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 359
|
|||||
| 16.12.2014, 02:53 [ТС] | |||||
|
Добавлено через 46 секунд Добавлено через 2 минуты
0
|
|||||
| 16.12.2014, 03:00 | |||
Сообщение было отмечено Aecttann как решение
Решение
Можете сравнить с транслитом или UTF-8, все то же самое.
1
|
|||
|
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 359
|
|||
| 16.12.2014, 03:09 [ТС] | |||
|
это как, допустим, в читалках на ПК, телефоне - декодер в них правильно предоставит мне эти файлы, да?
на примере в чём конкретно суть префиксного свойства? что в нём делает код однозначно декодируемым? Добавлено через 1 минуту просто, прочитав определение на википедии, я ещё больше запутался: Кликните здесь для просмотра всего текста
Если промежутков или других знаков препинания между кодовыми комбинациями нет, то для однозначного декодирования комбинации 111011101 ни одна из кодовых комбинаций не может быть представлена перечисленными вариантами (префиксами). Код называется префиксным, если ни одна из его комбинаций не является префиксом другой комбинации того же кода. Часть кодовой комбинации, которая дополняет префикс до самой комбинации, называется суффиксом. Префиксные коды наглядно могут быть представлены с помощью кодовых деревьев. Если ни один узел кодового дерева не является вершиной данного кода, то он обладает свойствами префикса. Узлы дерева, которые не соединяются с другими, называются конечными. Комбинации, которые им соответствуют, являются кодовыми комбинациями префиксного кода.
0
|
|||
| 16.12.2014, 03:24 | |||
|
"Сжатие" - это простейший вариант трансляции. "На пальцах", кодовые слова образуют дерево - каждый путь к листу уникален. Грамматика тривиальна: предпросмотра или учета контекста не требуется - как только прочитаны все биты кода, он может быть декодирован.
1
|
|||
|
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 359
|
|||
| 16.12.2014, 03:29 [ТС] | |||
0
|
|||
| 16.12.2014, 03:47 | |||
Сообщение было отмечено Aecttann как решение
РешениеДобавлено через 17 минут Кодер и декодер разделяют модель (можете думать о ней, как о двуязычном словаре: "symbol <--> code"). В статических методах словарь строится заранее и не изменяется, в динамических - обновляется по мере накопления статистики. При кодировании: кодер "смотрит" в словарь и взамен каждого символа, записывает в выходной поток его код. Декодирование - обратно. Symbol - это один символ (атом) входного алфавита. Это может быть байт, слово натурального языка, обусловленная фраза итд. В простейшем случае, все атомы имеют равный битовый размер (обычно, 4, 8 или 16 бит). Чтение и запись поточны - символ за символом. Если для равномерного кода возможен произвольный доступ к символу по индексу, то для неравномерного, позиция символа неизвестна, пока не прочитаны все ему предшествующие.
1
|
|||
| 16.12.2014, 03:47 | |
|
Помогаю со студенческими работами здесь
10
Канонический алгоритм Хаффмана Алгоритм Хаффмана с записью в файл Оптимизация расшифровки файла | алгоритм хаффмана Алгоритм Хаффмана, реализация через структуры Реализовать алгоритм оптимального кодирования Хаффмана Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|