Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для riv94
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392

Наибольшая длина кодов символов при алгоритме Хаффмана

27.12.2013, 17:50. Показов 4574. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, форумчане! Решаю следующую задачку!

Условие:
На вход алгоритма Хаффмана подается n частот кодируемых символов. Какова наибольшая длина кодов символов в худшем случае? В лучшем?

Мои соображения:
Худший случай - это когда все частоты кодируемых символов равны между собой... Тогда мы поделим число n/2 и получим число комбинаций k:=n/2, а потом полученное число снова поделим пополам, т.к. будем объединять самые редкие символы.. В итоге мы получим, что наибольшая длина кодов символов будет равна 2^(n-1)...
Лучший случай не удается подобрать( Помогите пожалуйста! Очень надеюсь на вашу помощь в проверке моего задания!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2013, 17:50
Ответы с готовыми решениями:

Ошибка в алгоритме Хаффмана. С++
Проблемы с реализацией алгоритма Хаффмана. Код по идее должен быть рабочим, но выскакивает такое окно. Не знаю как исправить. Помогите,...

Биты и байты в алгоритме Хаффмана
Пишу программу на С, в которой нужно реализовать метод кодирования Хаффмана. Код не буду прикладывать, так как в нём в принципе для меня...

Дерево в алгоритме Хаффмана, разобраться с записью
Здравствуйте! Хотел бы попросить помощи у вас по построению дерева в статическом алгоритме Хаффмана. есть 2 массива символов и их...

5
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
01.01.2014, 23:18
Мне кажется, что для максимальной и минимальной длины битового кода нет ни худшего, ни лучшего случая. Максимальная длина будет равна n-1, минимальная - единице. Но, возможно, я ошибаюсь.
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
01.01.2014, 23:45
Re: Задачка на алгоритм Хаффмана

Добавлено через 3 минуты
Цитата Сообщение от Catstail Посмотреть сообщение
Но, возможно, я ошибаюсь
:-)

Тогда "сжатие" было бы невозможно, поскольку оно базируется на симметрировании пространства состояний.
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
02.01.2014, 00:24
Цитата Сообщение от gazlan Посмотреть сообщение
Тогда "сжатие" было бы невозможно, поскольку оно базируется на симметрировании пространства состояний.
- Вероятно, я не вполне точно представлял себе алгоритм Хаффмана. Но сжатие возможно даже в случае, когда частоты всех символов одинаковы (но символов меньше, чем битов в байте).
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.01.2014, 01:15
Цитата Сообщение от Catstail Посмотреть сообщение
символов меньше, чем битов в байте
Точнее сказать, число символов сообщения меньше, чем число символов алфавита (всех возможных кодов).

Это, разумеется, правильно, но на практике чаще интересна обратная ситуация :-)

В любом случае, необходимый и достаточный критерий "сжимаемости" - незаполненность пространства состояний (наличие "запрещенных" кодовых комбинаций в исходном сообщении).


Исходный и "сжатый" текст можно рассматривать как инвариантный объект в исходных и штрихованных координатах (системах кодовых последовательностей). "Сжатие" - на самом деле, (пере)кодирование - при этом эквивалентно повороту к собственной (симметрированной) системе координат - к системе наименьшего объема (максимальной информационной энтропии). Уже симметричный объект ("шар"), естественно, несжимаем. Способ поворота (метод "сжатия") - LZ, Huffman или что угодно другое, неважен, это детали реализации.
2
 Аватар для riv94
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
04.01.2014, 15:43  [ТС]
gazlan, огроменное спасибо за помощь получилось так, что я сам дошел до решения, а вот сегодня нашел ему подтверждение по ссылке, представленной вами!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2014, 15:43
Помогаю со студенческими работами здесь

Вектор длин в Алгоритме Хаффмана: Как посчитать
Здравствуйте! Хотелось бы получить консультацию по поводу одного понятия ВЕКТОР ДЛИН в алгоритме Хаффмана... Как посчитать этот вектор...

Наибольшая длина волны?
Наибольшая длина волны спектральной водородной линии Бальмера равна 656,3 нм. Определить по этой длине волны наибольшую длину волны в серии...

Наибольшая длина отрезка
Дан массив целых чисел. Рассмотреть отрезки последовательности (подпоследовательности идущих подряд членов), состоящие из одинаковых...

Cумма кодов четных символов равна сумме кодов нечетных
Даны два поля edit1 и edit2. и кнопка button1. Нужно чтобы при нажатии на кнопку, проверялось: сумма кодов четных символов была равна сумме...

Наибольшая длина нечетных чисел
Дан массив целых чисел. Рассмотреть отрезки массива (группы идущих подряд чисел), состоящие из нечетных чисел. Получить наибольшую из длин...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru