Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2010, 17:50   #1
BaSoff
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 12
По умолчанию Вопрос по кодам Хаффмана

реализовал коды Хаффмана, на входе был довольно приличных размеров текст, вот что вышло

симв част код
пробел 1001 01
3 334 001
6 330 000
5 317 1111
4 298 1110
7 296 1101
2 295 1100
9 287 1011
1 285 1010
8 281 1001
0 186 10001
п 2 10000101
ф 1 10000000
а 1 10000001
с 1 10000010
р 1 10000011
ч 1 100001000
о 1 100001001
м 1 100001101
я 1 100001110
в 1 100001111
ы 1 100001100

меня интересует, могут ли очень редкие символы кодироваться 9 и большим количеством битов, и нормально ли это... вообще коды правильные выдает? помогите советом
BaSoff вне форума Ответить с цитированием
Старый 28.03.2010, 18:04   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

я думаю у вас дерево строится неправильно, 9 цифр для символа многовато
NiCola999 вне форума Ответить с цитированием
Старый 28.03.2010, 18:11   #3
BaSoff
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 12
По умолчанию

просто я скачивал реализацию кодов Хаффмана, для проверки своих кодов... вроде все правильно, или получается, что и реализация, которую я скачал оказалась тоже неправильной...?
BaSoff вне форума Ответить с цитированием
Старый 28.03.2010, 18:55   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

а черт его знает, может и правильно, проверять лень
NiCola999 вне форума Ответить с цитированием
Старый 28.03.2010, 18:58   #5
BaSoff
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 12
По умолчанию

тогда еще вопрос...) а как мне заархивировать файл? мой преподаватель сказал, что это можно сделать с помощью операции побитового сдвига... я прочитал про эту операцию, но никак не пойму, как с помощью нее мне записывать побитово символы в файл...?
BaSoff вне форума Ответить с цитированием
Старый 29.03.2010, 00:42   #6
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

На мой взгляд, действительно хреновый генератор кодов. Почему для наиболее часто втречающегося символа длина кода 2?
я бы ожидал чего-то вроде
0
10
101
110
1001
1010
1011
1100
1101
1110
10000
10001
...

то есть, для всего алфавита и цифр должно хватить кодов длиной 6. а для текста из примера хватит и 5.

Последний раз редактировалось f.hump; 29.03.2010 в 00:49.
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Архиватор Хаффмана zetrix Софт 17 15.03.2014 13:45
блок-схемы по готовым программным кодам uradik2 Фриланс 4 27.03.2010 07:03
Проверка кодов Хаффмана BaSoff Общие вопросы C/C++ 1 21.03.2010 17:26
Литература по кодам Хаффмана BaSoff Общие вопросы C/C++ 2 21.03.2010 11:34
реализация метода Хаффмана ShturmBan Помощь студентам 2 13.01.2010 15:46