|
56 / 43 / 27
Регистрация: 19.12.2013
Сообщений: 204
|
|||||||||||
Кодирование по частотности06.08.2025, 11:54. Показов 2975. Ответов 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
Сообщений: 60
|
||
| 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
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,236
|
|||||||||||||||||||||
| 13.08.2025, 00:53 | |||||||||||||||||||||
|
Хаффманом вот так вышло:
HuffmanTree
MinBinaryHeap
1
|
|||||||||||||||||||||
|
|
||
| 13.08.2025, 00:54 | ||
|
0
|
||
|
4694 / 2702 / 734
Регистрация: 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: Кодирование русских символов Кодирование и декодирование текста
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|