|
56 / 43 / 27
Регистрация: 19.12.2013
Сообщений: 204
|
|||||||||||
Кодирование по частотности06.08.2025, 11:54. Показов 3016. Ответов 33
Метки нет (Все метки)
Не могу решить задачу, так не до конца понимаю её условие. Задача такая:
Вы работаете над системой управления контентом корпоративного портала: в нем хранится большое количество статей, новостей и других материалов для новичков. Для экономии места на сервере и увеличения скорости передачи данных было решено применять сжатие данных перед их сохранением. Вы выбрали такой метод хранения данных: текстовые данные будут переведены в двоичные. Более часто употребляемые буквы в тексте будут представлены короткими двоичными кодами, а редко встречающиеся буквы будут иметь более длинные коды. При этом регистр нужно игнорировать. Предположим, мы хотим закодировать последовательность «аааабвв». Сначала нам нужно вычислить частоту букв в тексте: а встречается 4 раза, 6 — 1 раз, в — 2 раза. Частота определяет двоичный код, кодирующий символ. Учитывая частотность букв в нашей последовательности, мы закодируем «а» с помощью «1», «б» с помощью «11», и «в» с помощью «10» в двоичной системе. Закодированная последовательность «аааабвв» будет выглядеть как 1111111010. Для удобства функция, создающая 34 последовательных двоичных числа, уже есть в прекоде. Этого количества достаточно для кодирования текста на русском языке с учетом пробела. Формат ввода Входные данные состоят из одной строки, содержащей произвольные буквы русского языка. В строке могут быть только буквенные символы и пробел. Пробел считается символом наравне с буквами. Формат вывода Выходные данные состоят из одной строки, содержащей двоичный код — в нем должна быть закодирована буквенная последовательность из ввода. Пример 1 Входные данные: аааабвв Выходные данные: 1111111010 Пример 2 Входные данные: Птицы поют утром Выходные данные: 1011000101000110010110100001111100011001 0000001010111001 Пример 3 Входные данные: Мальчик играет в футбол Выходные данные: 1101110010111011110001101001101010101111 00100011011000111011111100100001000111 Код предоставленный в исходных данных:
Мне кажется, что моя ошибка в сортировке словаря с символами, входящими в фразу. Также очень смущает наличие шести нулей подряд в примере № 2, так как для фразы "Птицы поют утром" у меня получилось 11 различных символов с кодами (1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011). Если у кого-то есть свободное время и желание решить задачку, прошу указать на мои ошибки. Спасибо!
0
|
|||||||||||
| 06.08.2025, 11:54 | |
|
Ответы с готовыми решениями:
33
Кодирование информации табличным способом. Кодирование строк unicode в байты utf-8 Кодирование текста |
|
5 / 3 / 2
Регистрация: 27.04.2022
Сообщений: 63
|
||
| 12.08.2025, 16:40 | ||
|
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||
| 12.08.2025, 19:51 | ||||||
|
Третий пример получается если вообще ничего не сортировать =)
Очень вероятно, что просто совпадение(или нет).
Добавлено через 2 минуты Kloshar, пиши им в саппорт, пусть краснеют.
1
|
||||||
|
56 / 43 / 27
Регистрация: 19.12.2013
Сообщений: 204
|
||
| 12.08.2025, 22:16 [ТС] | ||
получается здесь просто используются первые 8 кодов по порядку, а дальше какая-то белиберда
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||||||||||||||||||||||||||||||||||||||||||||
| 12.08.2025, 22:47 | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Вот и в итоге, 2 пример абсолютно нереальный для 34буквенного алфавита. А 3 так вообще от другой задачи, вероятно. Потому что я не верю в совпадения) Добавлено через 8 минут Таблица что бы было видно :
0
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
| 13.08.2025, 00:06 | ||
|
Давно наблюдаю за темой, не вмешивался..
С задачей все нормально. Обратно в текст переводить не нужно. Необходимо закодировать входной текст в последовательность 1/0. Этот алгоритм будет проверяться на других спонтанных текстах. Добавлено через 7 минут Ничего обратно преобразовывать не надо. А "метод хранения" - это лишь фразеологизм из контекста задания.
0
|
||
|
|
||
| 13.08.2025, 00:30 | ||
|
Если портал позиционирует себя как "тест на пригодность работника", то задача должна быть максимально приближенной к реальным. "Хранить" данные в необратимом формате -- нонсенс. Даже более того, человек который НЕ задумается что из текущей таблицы нельзя распаковать обратно, как раз НЕ проходит. Понимание абсурдности задания тоже довольно важный критерий для работника. Если даже скинуть критерий с "задача на профпригодность" до "обучающая", то тут тоже довольно плохо. Можно придумать не один десяток вариантов, где нужно будет оперировать не кратным количеством битов, и при этом оставаться в рамках логики. Это позволит не тупить студенту над контекстом.
0
|
||
|
|
|
| 13.08.2025, 00:44 | |
|
Wolfdp, бесспорно. Только вот вряд ли эта задача конкретно на профпригодность. Это задание с каких-то курсов, причем, одновременно на сообразительность + логическое мышление.
P.S. я ее решил, проходит все тесты.
0
|
|
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
|||||||||||||||||||||
| 13.08.2025, 00:53 | |||||||||||||||||||||
|
Хаффманом вот так вышло:
HuffmanTree
MinBinaryHeap
1
|
|||||||||||||||||||||
|
|
||
| 13.08.2025, 00:54 | ||
|
0
|
||
|
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
|
||||||||||||
| 13.08.2025, 01:24 | ||||||||||||
|
Добавлено через 7 минут И там обратите внимание, кодовая табличка отсортирована по убыванию частот - для наглядности, частые символы - имеют меньшую длину, более редкие - бОльшую длину. Добавлено через 11 минут Эм, недостающий кусок кода:
Итого на фразу длиной 23 символа ушло бы 138 бит, а с Хаффманом ушло 93 бита. 45 бит сэкономили
0
|
||||||||||||
|
|
||||
| 13.08.2025, 02:29 | ||||
|
0
|
||||
|
|
|
| 13.08.2025, 02:47 | |
|
Wolfdp, не буду спорить, конечно, и что-то утверждать. Однако, "всем известный сайт", как говорит автор - совсем не всем известный, оказывается. И таких сайтов в наше время могло развестись довольно много.
Одно могу сказать точно - для оценки кандидата на ИТ-специальность, в конкретную контору - таких задач не дают. А если уже дают - то дело совсем плохо.
0
|
|
|
56 / 43 / 27
Регистрация: 19.12.2013
Сообщений: 204
|
|
| 13.08.2025, 10:13 [ТС] | |
|
IamRain, спасибо за решение методом Хаффмана! Самому было интересно попробовать, но познаний маловато. Потихоньку разберу как это делается
0
|
|
| 13.08.2025, 10:13 | |
|
Кодирование Виженером кирилических символов Кодирование по Хаффману ASCIIEncoding: Кодирование русских символов Кодирование и декодирование текста
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|