Задания № 4, 8 · ЕГЭ

Задачи на кодирование информации

Алгоритмы решения задач на алфавиты, кодовые слова, таблицы соответствий и декодирование сообщений
7 мин чтенияСложность: Обновлено 29 сентября 2026

Задачи на кодирование проверяют, умеете ли вы работать с алфавитом, кодовыми словами и правилами их сопоставления. Главное — внимательно определить, что известно, выбрать единицу счёта и не перепутать количество символов с длиной сообщения.

Основные понятия и обозначения

Кодирование информации — это представление сообщений с помощью символов некоторого кода. Набор допустимых символов называют алфавитом. Например, двоичный алфавит состоит из символов 0 и 1, а алфавит русского языка — из букв, если не учитывать пробелы и знаки препинания.

D
Код и кодовое слово

Код — правило, по которому исходным символам или сообщениям ставятся в соответствие кодовые комбинации. Кодовое слово — отдельная комбинация символов кода, соответствующая одному исходному символу или объекту. Например, при таблице А → 00, Б → 01 комбинация 00 — кодовое слово для буквы А.

Перед решением выпишите параметры задачи: \(N\) — мощность исходного алфавита, \(K\) — мощность кодового алфавита, \(L\) — длина кодового слова, \(n\) — число исходных символов в сообщении, \(m\) — число символов в закодированном сообщении.

T
Число кодовых слов фиксированной длины

Если кодовый алфавит содержит \(K\) символов, а каждое кодовое слово имеет длину \(L\), то всего можно составить \(K^L\) различных слов. Если все исходные символы кодируются разными словами одинаковой длины, необходимо, чтобы \(K^L \ge N\).

\[M = K^L\]
\[K^L \ge N\]

Для двоичного кода \(K=2\), поэтому число слов длины \(L\) равно \(2^L\). Минимальную длину равномерного двоичного кода находят подбором или формулой \(L \ge \lceil \log_2 N \rceil\). Если длина кодовых слов различается, подсчёт становится отдельной задачей: нельзя автоматически умножать число символов на одну длину.

Как решать задачи по таблице кодирования

Сначала изучите таблицу кодирования и определите направление соответствия: исходный символ → код или код → исходный символ. Затем проверьте, являются ли кодовые слова фиксированными по длине и можно ли однозначно разделить последовательность на части.

  1. Выпишите все пары «символ — кодовое слово» из таблицы.
  2. Определите длину одного слова или границы слов в сообщении.
  3. Для кодирования заменяйте символы по таблице, не меняя порядок.
  4. Для декодирования разбивайте строку на кодовые слова и заменяйте каждое слово обратным символом.
  5. Проверьте результат: все использованные коды должны быть допустимыми, а длина результата — соответствовать условию.
Практический приём

Если код фиксированной длины, поставьте вертикальные черты через каждые \(L\) символов. Например, строку 00101100 при \(L=2\) удобно записать как 00|10|11|00. При кодах переменной длины границы нужно искать по таблице, обычно начиная с начала строки.

Коды одинаковой длины разделяются однозначно: после чтения первых \(L\) символов граница следующего слова известна. Для кодов разной длины это не всегда так. Префиксный код устроен безопаснее: ни одно кодовое слово не является началом другого, поэтому сообщение можно читать слева направо без разделителей.

!
Частая ошибка

Нельзя считать, что количество кодовых слов равно \(K\cdot L\). Варианты заполняются независимо, поэтому используется степень \(K^L\). Также нельзя декодировать строку блоками одинаковой длины, если в условии длины слов различны.

Количество информации и длина сообщения

В задачах часто спрашивают длину закодированного сообщения. Если каждый из \(n\) исходных символов заменяется кодовым словом длины \(L\), то длина результата равна произведению \(nL\). Для кода с \(K\) символами это число обычно измеряется в кодовых символах, а для двоичного кода — в битах.

\[m = n \cdot L\]

Если исходный алфавит содержит \(N\) равновероятных символов, теоретическое количество информации об одном символе связано с двоичным представлением: \(\log_2 N\) бит. Однако в школьных задачах при фиксированной длине берут целое число бит и округляют вверх. Подробный пример связи длины и числа вариантов приведён на странице «Длина кода», а расчёты для двоичных сообщений — на странице «Количество информации в двоичном сообщении».

Микро-проверка

Сколько различных кодовых слов длины 4 можно составить из алфавита {0, 1}?

Разобранный пример: кодирование и декодирование

№
Условие

Дана таблица: А → 00, Б → 01, В → 10, Г → 11. Закодируйте слово «БАГА» и декодируйте сообщение 11000001.

1
Слова имеют одинаковую длину: каждое кодовое слово содержит 2 символа. Поэтому при кодировании заменяем буквы по порядку.
\(\displaystyle БАГА \to 01\,00\,10\,00\)
2
Объединяем кодовые слова без разделителей.
\(\displaystyle 01\,00\,10\,00 = 01001000\)
3
Для декодирования делим строку 11000001 на блоки по 2 символа.
11000001 = 11|00|00|01
4
По таблице заменяем блоки: 11 → Г, 00 → А, 00 → А, 01 → Б.
\(\displaystyle 11|00|00|01 \to \text{ГААБ}\)

Ответ: слово «БАГА» кодируется как 01001000, а сообщение 11000001 декодируется в «ГААБ». Обратите внимание: при декодировании нельзя читать строку справа налево или переставлять блоки.

i
Когда нужен перебор

Если в задаче дана таблица, но один или несколько кодов неизвестны, используйте условия уникальности, длины сообщения и количества различных кодов. При небольшом числе вариантов удобно составить таблицу кандидатов и последовательно исключать невозможные.

Алфавиты и минимальная длина кода

Пусть нужно закодировать \(N\) различных символов двоичными словами одинаковой длины. Подберите наименьшее \(L\), при котором \(2^L\ge N\). Например, для 20 символов: \(2^4=16<20\), а \(2^5=32\ge20\), значит, потребуется минимум 5 бит на символ.

\[L_{\min}=\lceil\log_2 N\rceil\]

Если кодовый алфавит содержит не два, а \(K\) символов, условие меняется на \(K^L\ge N\). Например, при \(K=3\) и \(N=20\): \(3^2=9<20\), \(3^3=27\ge20\), поэтому достаточно трёх символов кода на один исходный символ.

T
Проверка полноты таблицы

Таблица задаёт однозначное кодирование, если разным исходным символам соответствуют разные кодовые слова. Если два символа имеют один и тот же код, обратное декодирование невозможно без дополнительных условий.

Коды переменной длины могут экономить место, но требуют проверки однозначности. Для оценки допустимости набора кодов иногда применяют неравенство Крафта. В базовых экзаменационных задачах чаще достаточно заметить, что один код не должен быть началом другого, либо использовать заданные разделители.

Алгоритм оформления ответа

  • Запишите алфавит и обозначьте, что именно кодируется.
  • Проверьте направление таблицы: из символов в коды или наоборот.
  • Установите длину кодового слова и способ разделения сообщения.
  • Выполните замену по одному символу или блоку за раз.
  • Пересчитайте длину результата и проверьте каждый блок по таблице.
!
Ещё три ошибки

Не учитывайте пробелы, знаки препинания или регистр букв, если это не указано в условии. Не округляйте \(\log_2 N\) вниз: нужна целая длина, при которой вариантов не меньше \(N\). Не путайте число символов исходного текста с числом кодовых символов после замены.

Для дополнительных задач полезно повторить пример кодирования информации и сравнить равномерные и неравномерные коды. Понятия кодового слова и избыточности разобраны на страницах «Кодовое слово» и «Избыточное кодирование».

Q
Быстрый тест по теме

Быстрая проверка

~ 2 мин4 вопроса
Вопрос 1 / 4
Вопрос 1 из 4 · число кодовых слов
Сколько двоичных слов длины 6 существует?
Главное за минуту

Главное

  • Число слов длины \(L\) над алфавитом из \(K\) символов равно \(K^L\).
  • Для равномерного кода необходимо \(K^L\ge N\), а для двоичного кода \(L_{\min}=\lceil\log_2N\rceil\).
  • При фиксированной длине сообщения из \(n\) символов занимает \(m=nL\) кодовых символов.
  • При декодировании сначала определяют границы кодовых слов, затем используют обратную таблицу.
  • Всегда проверяйте уникальность кодов, длину результата и соответствие каждому блоку таблице.