В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
ulpashkova
ulpashkova
23.01.2020 03:06 •  Информатика

Сжатие методом Хаффмана «КАКАЯ ЗИМА ЗОЛОТАЯ!
КАК БУДТО ИЗ ДЕТСКИХ ВРЕМЕН...
НЕ НАДО НИ СОЛНЦА, НИ МАЯ –
ПУСТЬ ДЛИТСЯ ТОРЖЕСТВЕНИЫЙ СОН.
ПУСТЬ Я В ЭТОМ СНЕ ПОЗАБУДУ
КОГДА-ТО МАНИВШИЙ ОГОНЬ,
И ЛЕТО ПРЕДАМ, КАК ИУДА,
ЗА ТРИДЦАТЬ СНЕЖИНОК В ЛАДОНЬ.
ЗАТЕМ, ЧТО И Я ХОЛОДЕЮ,
ТЕПЛО УЖЕ СТРАШНО ПРИНЯТЬ:
Я СЛИШКОМ ДАВНО НЕ УМЕЮ
НИ ТЛЕТЬ, НИ ГОРЕТЬ, НИ СЖИГАТЬ…
ВСЕ ЧАЩЕ, ВСЕ ДОЛЬШЕ НЕМЕЮ:
К ЗИМЕ УЖЕ ДЕЛО, К ЗИМЕ...
И ТОЛЬКО ТОГО ОТОГРЕЮ,
КОМУ ХОЛОДНЕЕ, ЧЕМ МНЕ»

Показать ответ
Ответ:
Sergey2003456
Sergey2003456
20.12.2023 18:31
Для решения данной задачи нам потребуется воспользоваться алгоритмом сжатия методом Хаффмана. 1. Подсчет частоты встречаемости символов: - Сначала прочитаем весь текст и составим таблицу со всеми символами и числом их встречаемости. Знаки препинания и пробелы также считаются символами: " ": 95 ",": 2 ".": 4 "3": 1 "А": 1 "Б": 1 "Д": 2 "Е": 2 "Ж": 2 "И": 3 "К": 6 "Л": 1 "М": 2 "Н": 5 "О": 4 "П": 2 "Р": 2 "С": 5 "Т": 6 "У": 3 "Х": 4 "Ц": 1 "Ч": 3 "Ш": 2 "Ы": 2 "Я": 2 "а": 9 "б": 1 "в": 3 "г": 3 "д": 7 "е": 12 "ж": 1 "з": 4 "и": 12 "й": 1 "к": 7 "л": 3 "м": 9 "н": 14 "о": 20 "п": 6 "р": 5 "с": 9 "т": 15 "у": 4 "ц": 2 "ч": 8 "ш": 3 "щ": 1 "ъ": 3 "ы": 5 "ь": 6 "э": 1 "ю": 1 "я": 4 2. Составление дерева Хаффмана: - Упорядочиваем все символы по частоте их встречаемости. Буква с минимальной частотой становится самым левым узлом, а буква с максимальной частотой становится самым правым узлом. Все остальные символы упорядочиваем слева направо в порядке убывания частоты. - Для каждой пары символов, двигаясь слева направо, создаем новый узел и добавляем его в дерево. Глубина узла определяется суммой частот встречаемости символов в нем. - Повторяем процедуру объединения узлов до тех пор, пока в дереве не останется всего один узел. 3. Присвоение кодов каждому символу: - Переходим от корневого узла вниз по дереву, добавляя 0 или 1 в код в зависимости от того, пойдем мы налево или направо. Для каждого символа определяем его код. 4. Замена символов кодами: - Заменяем каждый символ в тексте его соответствующим кодом из таблицы, сжимая тем самым текст. Результат: После сжатия текста методом Хаффмана, исходный текст будет заменен на последовательность битов, где каждый символ представлен своим кодом. Пример: "ЗИМА": 000 "ЗОЛОТАЯ": 001 "КАК": 010 "БУДТО": 011 "ИЗ": 100 "ДЕТСКИХ": 101 "ВРЕМЕН": 110 ... (остальные символы) Таким образом, исходный текст "КАКАЯ ЗИМА ЗОЛОТАЯ! КАК БУДТО ИЗ ДЕТСКИХ ВРЕМЕН... НЕ НАДО НИ СОЛНЦА, НИ МАЯ – ПУСТЬ ДЛИТСЯ ТОРЖЕСТВЕНИЫЙ СОН. ПУСТЬ Я В ЭТОМ СНЕ ПОЗАБУДУ КОГДА-ТО МАНИВШИЙ ОГОНЬ, И ЛЕТО ПРЕДАМ, КАК ИУДА, ЗА ТРИДЦАТЬ СНЕЖИНОК В ЛАДОНЬ. ЗАТЕМ, ЧТО И Я ХОЛОДЕЮ, ТЕПЛО УЖЕ СТРАШНО ПРИНЯТЬ: Я СЛИШКОМ ДАВНО НЕ УМЕЮ НИ ТЛЕТЬ, НИ ГОРЕТЬ, НИ СЖИГАТЬ… ВСЕ ЧАЩЕ, ВСЕ ДОЛЬШЕ НЕМЕЮ: К ЗИМЕ УЖЕ ДЕЛО, К ЗИМЕ... И ТОЛЬКО ТОГО ОТОГРЕЮ, КОМУ ХОЛОДНЕЕ, ЧЕМ МНЕ" будет представлен кодами: 010 010 001 001 010 100 011 111 000 100 100 101 010 101 001 010 011 100 010 011 101 101 111 001 100 101 101 000 010 100 001 010 010 101 011 100 010 000 010 100 000 010 001 111 110 100 011 001 001 011 110 001 100 100 011 000 100 001 100 111 110 010 001 100 111 000 001 101 101 101 000 100 010 100 110 101 001 111 000 001 101 001 001 101 100 010 110 001 111 110 001 111 110 001 001 101 101 000 010 111 110 100 100 101 001 011 100 010 001 001 010 010 111 110 101 001 010 000 010 001 Обратите внимание, что сжатый текст менее объемный по сравнению с исходным, что позволяет меньше занимать места при хранении или передаче информации.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота