ex exxam.ruВсе задания
генератор заданийкодирование словабез регистрации

Закодируй слово минимальной длины

Длина закодированного слова — это . Расставь коды так, чтобы самым частым буквам достались самые короткие коды, и слово стало короче.

Частым буквам — короткие коды

Когда кодируется не набор букв, а слово, важна частота буквы: длина сообщения — это . Поэтому самым частым буквам — самые короткие коды.

Пример — слово ТЕТЕРЕВ (Е — 3 раза, Т — 2, Р — 1, В — 1). Сравним два варианта кодов:

Плохо: частым символам — длинные коды

букваЕТРВ
код1111110100

ТЕТЕРЕВ — закодированное слово

с разделителями: 110|1111|110|1111|10|1111|0

слитно: 110111111011111011110

Длина

Хорошо: частым символам — короткие коды

букваЕТРВ
код0101101110

ТЕТЕРЕВ — закодированное слово

с разделителями: 10|0|10|0|110|0|1110

слитно: 10010011001110

Длина

Вывод: частым буквам — короткие коды

букваЕТРВ
частота3211

Чем чаще буква встречается в слове, тем короче должен быть её код — тогда закодированное сообщение короче.

Как пользоваться этим режимом. Расставь коды оставшихся букв так, чтобы длина закодированного слова стала минимальной.

Загрузка практикума…

Частые вопросы

Почему частым буквам нужны короткие коды?
Длина сообщения — это сумма по всем буквам. Если сделать частые буквы короткими, общая длина уменьшится сильнее всего.
Как считается длина слова?
Для каждой буквы умножаем её число вхождений в слово на длину её кода и складываем. Это и есть число бит закодированного слова.
Что ограничивает выбор кодов?
Условие Фано и уже заданные коды: новые коды нельзя ставить под заданными или над ними, и ни один код не должен быть началом другого.

Разбор билетаВсе задания