Незнайка
Вся теория
Теория· 7 мин чтения

Кодирование и измерение информации

Единицы измерения информации, формула Хартли и Шеннона, расчёт информационного объёма сообщения и количества символов алфавита.

В этой статье вы сможете узнать:

  • как связаны между собой единицы измерения информации — бит, байт и производные от них;
  • как формула Хартли связывает количество возможных сообщений с информационным объёмом;
  • как рассчитать объём информации в сообщении, зная мощность алфавита и число символов.

Единицы измерения информации

Бит — минимальная единица измерения информации, соответствующая одному двоичному разряду (0 или 1).

Байт равен 8 битам:

1 байт=8 бит1 \text{ байт} = 8 \text{ бит}

Производные единицы образуются умножением на 1024 (то есть на 2102^{10}), а не на 1000, как в десятичной системе СИ:

1 Кбайт=210 байт=1024 байт1 \text{ Кбайт} = 2^{10} \text{ байт} = 1024 \text{ байт} 1 Мбайт=210 Кбайт=220 байт1 \text{ Мбайт} = 2^{10} \text{ Кбайт} = 2^{20} \text{ байт} 1 Гбайт=210 Мбайт=230 байт1 \text{ Гбайт} = 2^{10} \text{ Мбайт} = 2^{30} \text{ байт}

Формула Хартли

Формула Хартли связывает количество возможных равновероятных сообщений NN с информационным объёмом одного сообщения ii (в битах):

N=2i⇔i=log⁡2NN = 2^i \quad \Leftrightarrow \quad i = \log_2 N

Эта формула применяется, когда все варианты сообщения равновероятны — например, при определении количества бит, нужных для кодирования одного символа алфавита известного размера.

Пример. Сколько бит нужно для кодирования одного символа алфавита из 32 символов?

32=2i⇒i=532 = 2^i \Rightarrow i = 5

Ответ: 5 бит на символ.

Если мощность алфавита не является степенью двойки

Формула Хартли i=log⁡2Ni = \log_2 N даёт целое число бит только тогда, когда NN является степенью двойки (2, 4, 8, 16, 32 и так далее). Если мощность алфавита NN не является степенью двойки, точное значение log⁡2N\log_2 N оказывается нецелым — но количество бит физически должно быть целым числом, поэтому его округляют вверх до ближайшего целого:

i=⌈log⁡2N⌉i = \lceil \log_2 N \rceil

Округление именно вверх объясняется тем, что при округлении вниз выделенного количества бит не хватило бы, чтобы закодировать все NN символов алфавита — нужно взять минимальное целое число бит, при котором 2i≥N2^i \geq N.

Пример. Алфавит содержит 50 символов. Сколько бит нужно для кодирования одного символа?

Точное значение: log⁡250≈5,64\log_2 50 \approx 5{,}64.

Проверяем ближайшие степени двойки: 25=322^5 = 32 (недостаточно, так как 32<5032 < 50), 26=642^6 = 64 (достаточно, так как 64≥5064 \geq 50).

Ответ: i=6i = 6 бит на символ (округление вверх от 5,64).

Важно: при расчёте общего объёма сообщения I=L⋅iI = L \cdot i нужно использовать именно округлённое значение ii, а не точное дробное — количество бит на символ при кодировании не может быть нецелым.

Формула Шеннона

Если события (символы, сообщения) не равновероятны, применяется более общая формула Шеннона, учитывающая вероятность pkp_k каждого из NN возможных сообщений:

i=−∑k=1Npklog⁡2pki = -\sum_{k=1}^{N} p_k \log_2 p_k

При равной вероятности всех событий (pk=1Np_k = \dfrac{1}{N} для всех kk) формула Шеннона сводится к формуле Хартли.

Пример. В корзине лежат шары четырёх цветов: 2 красных, 2 синих, 2 жёлтых, 2 зелёных (всего 8 шаров, вероятность каждого цвета равна 14\dfrac{1}{4}). Сколько информации несёт сообщение о цвете вынутого шара?

Поскольку все 4 варианта равновероятны, используем формулу Хартли: i=log⁡24=2i = \log_2 4 = 2 бита.

Объём информации в сообщении

Если сообщение состоит из LL символов алфавита мощностью NN, а на один символ требуется i=log⁡2Ni = \log_2 N бит, то весь информационный объём сообщения II вычисляется по формуле:

I=L⋅i=L⋅log⁡2NI = L \cdot i = L \cdot \log_2 N

Пример. Сообщение из 100 символов записано с помощью алфавита из 16 символов. Каков информационный объём сообщения?

i=log⁡216=4 бита на символi = \log_2 16 = 4 \text{ бита на символ} I=100⋅4=400 бит=50 байтI = 100 \cdot 4 = 400 \text{ бит} = 50 \text{ байт}

Определение мощности алфавита по объёму сообщения

Если известен общий объём сообщения в битах и число символов, можно найти количество бит на символ, а затем восстановить мощность алфавита:

N=2i,где i=ILN = 2^i, \quad \text{где } i = \dfrac{I}{L}

Пример. Сообщение объёмом 240 бит содержит 40 символов. Сколько символов в алфавите, которым закодировано сообщение (при условии, что все символы алфавита равновероятны)?

i=24040=6 бит на символi = \dfrac{240}{40} = 6 \text{ бит на символ} N=26=64N = 2^6 = 64

Ответ: алфавит содержит 64 символа.

Алгоритм решения задач на измерение информации

  1. Определите, что дано в задаче: мощность алфавита, число символов сообщения, общий информационный объём или вероятности событий.
  2. Если события равновероятны, используйте формулу Хартли i=log⁡2Ni = \log_2 N для нахождения количества бит на один символ или на одно сообщение. Если NN не является степенью двойки, округлите результат вверх до ближайшего целого.
  3. Если вероятности событий различны, используйте формулу Шеннона.
  4. Для нахождения общего объёма сообщения умножьте число символов на количество бит, приходящихся на один символ: I=L⋅iI = L \cdot i.
  5. Переведите результат в нужные единицы измерения (биты, байты, килобайты и так далее), используя коэффициент 1024 между соседними единицами.

Примеры решения

Пример 1. Алфавит содержит 256 символов. Сколько бит требуется для кодирования одного символа?

256=2i⇒i=8256 = 2^i \Rightarrow i = 8

Ответ: 8 бит (1 байт).

Пример 2. Сообщение занимает 2 Кбайта и содержит 512 символов. Найдите мощность алфавита, которым оно закодировано.

Переводим объём в биты: 2 Кбайт=2⋅1024⋅8=163842 \text{ Кбайт} = 2 \cdot 1024 \cdot 8 = 16384 бит.

Находим биты на символ: i=16384512=32i = \dfrac{16384}{512} = 32 бита на символ.

Находим мощность алфавита: N=232N = 2^{32}.

Ответ: N=232N = 2^{32} символов.

Пример 3. Монета бросается дважды. Сколько информации несёт сообщение о результате обоих бросков?

Всего равновероятных исходов: 2×2=42 \times 2 = 4.

i=log⁡24=2 битаi = \log_2 4 = 2 \text{ бита}

Ответ: 2 бита.

Пример 4. Алфавит содержит 100 символов. Сообщение состоит из 20 символов этого алфавита. Найдите информационный объём сообщения.

Точное значение: log⁡2100≈6,64\log_2 100 \approx 6{,}64. Проверяем степени двойки: 26=642^6=64 (недостаточно), 27=1282^7=128 (достаточно).

Округляем вверх: i=7i = 7 бит на символ.

I=20⋅7=140 битI = 20 \cdot 7 = 140 \text{ бит}

Ответ: 140 бит.

Часто задаваемые вопросы

Почему в информатике используется коэффициент 1024, а не 1000, при переходе между единицами измерения? Потому что компьютерная память и информация оперируют двоичной системой счисления, и 1024 — это ближайшая к 1000 степень двойки (2102^{10}), поэтому традиционно в информатике «кило-», «мега-» и «гига-» означают именно степени 1024, а не 1000, как в метрической системе СИ.

Когда нужно использовать формулу Шеннона вместо формулы Хартли? Формулу Шеннона нужно применять, если вероятности разных сообщений (символов, событий) неодинаковы — формула Хартли является её частным случаем для ситуации, когда все события равновероятны.

Можно ли получить нецелое количество бит на символ? Математически формула i=log⁡2Ni = \log_2 N может дать нецелое значение, если NN не является степенью двойки, но на практике при кодировании количество бит на символ округляется вверх до ближайшего целого числа, поскольку неполный бит физически невозможен.

Как быстро перевести объём информации из битов в байты, килобайты и мегабайты? Нужно последовательно делить исходное значение на 8 (чтобы перейти от битов к байтам) и затем на 1024 столько раз, сколько единиц измерения нужно пройти (байт → килобайт → мегабайт → гигабайт).

Похожие темы для изучения

  • Системы счисления: перевод чисел между системами
  • Арифметические операции в позиционных системах счисления
  • Кодирование текстовой информации
  • Кодирование графической информации

Задачи для самостоятельного решения

  1. Сколько бит нужно для кодирования одного символа алфавита из 128 символов?
  2. Сообщение содержит 200 символов и закодировано алфавитом из 64 символов. Найдите объём сообщения в битах и байтах.
  3. Объём сообщения составляет 1 Кбайт, а число символов в нём — 256. Найдите мощность алфавита.
  4. Игральный кубик бросают один раз. Сколько информации несёт сообщение о выпавшей грани?
  5. Переведите 5 Мбайт в биты, используя коэффициент 1024.
  6. Объясните, почему формула Хартли является частным случаем формулы Шеннона.