Содержательный подход: формула Хартли
Как измерить количество информации через то, насколько сильно сообщение уменьшило нашу неопределённость.
Представьте, что друг загадал число от 1 до 8, а вы должны его угадать. Пока вы ничего не знаете, перед вами 8 равновозможных вариантов — это и есть неопределённость. Когда друг говорит «число чётное», вариантов остаётся 4 — неопределённость стала меньше. А когда он наконец называет число, неопределённость исчезает совсем. Содержательный подход измеряет информацию именно так: чем сильнее сообщение уменьшило неопределённость, тем больше информации оно несёт.
Содержательный (вероятностный) подход: количество информации в сообщении — это мера уменьшения неопределённости знания о результате некоторого события. Сообщение несёт 1 бит, если оно уменьшает неопределённость ровно вдвое.
Что такое неопределённость и почему вдвое
Неопределённость возникает там, где есть несколько возможных исходов, и мы заранее не знаем, какой случится. Бросок монеты — 2 исхода, бросок кубика — 6, вытягивание карты из колоды — 52. Чем больше исходов, тем выше неопределённость.
Договорились измерять информацию в битах. Один бит — это количество информации, которое уменьшает неопределённость в 2 раза. Сообщение «монета упала орлом» сокращает 2 варианта до 1 — значит, оно несёт ровно 1 бит. Сообщение «число чётное» из примера выше сократило 8 вариантов до 4 — тоже в 2 раза, тоже 1 бит.
Формула Хартли
Пусть событие имеет N равновероятных исходов (то есть ни один не вероятнее другого). Тогда количество информации i в сообщении о том, какой именно исход произошёл, связано с N формулой Хартли:
N = 2ⁱ ⟺ i = log₂ N
Читается так: чтобы из N вариантов выбрать один, нужно i раз уменьшить неопределённость вдвое. Каждое такое деление пополам — это 1 бит, а всего их получается log₂ N.
| Число исходов N | Информация i = log₂ N | Проверка: 2ⁱ |
|---|---|---|
| 2 | 1 бит | 2¹ = 2 |
| 4 | 2 бита | 2² = 4 |
| 8 | 3 бита | 2³ = 8 |
| 16 | 4 бита | 2⁴ = 16 |
| 32 | 5 бит | 2⁵ = 32 |
| 64 | 6 бит | 2⁶ = 64 |
| 1024 | 10 бит | 2¹⁰ = 1024 |
Если N — это степень двойки, ответ получается целым и красивым. Если нет (например, N = 6 для кубика), то i — дробное число, и об этом чуть ниже.
Пример 1: угадывание числа
Друг загадал число от 1 до 8, все варианты равновозможны. Сколько информации мы получим, когда узнаем загаданное число?
- Число исходов: N = 8.
- По формуле: i = log₂ 8 = 3 бита (потому что 2³ = 8).
Три бита — это ровно три вопроса вида «да/нет», если задавать их с умом. «Число больше 4?» — отсекаем половину. «Больше 6?» — снова половину. «Это 7?» — и мы у цели. Каждый удачный вопрос даёт 1 бит, а три вопроса гарантированно находят любое из 8 чисел.
Пример 2: бросок кубика
У игрального кубика N = 6 граней. Сколько информации несёт сообщение о выпавшем числе?
i = log₂ 6 ≈ 2,585 бита. Число дробное, потому что 6 — не степень двойки: его не получится «угадать» целым числом вопросов «да/нет». Двух вопросов мало (2 бита покрывают только 4 варианта), а три вопроса — уже с запасом (8 вариантов). Поэтому честное количество информации лежит между 2 и 3 битами.
Попробуйте сами: калькулятор Хартли
Запустите код. Функция info_by_outcomes по числу равновероятных исходов считает i = log₂ N, а функция outcomes_by_info делает обратное — по числу бит находит N = 2ⁱ. Поменяйте аргументы в вызовах и проверьте свои задачи.
import math
def info_by_outcomes(N):
"""По числу исходов N считает информацию i = log2(N) в битах."""
i = math.log2(N)
print(f"N = {N} исходов -> i = {i:.3f} бит")
return i
def outcomes_by_info(i):
"""По числу бит i считает число исходов N = 2**i."""
N = 2 ** i
print(f"i = {i} бит -> N = {N:.0f} исходов")
return N
# Прямая задача: монета, кубик, угадывание числа
info_by_outcomes(2)
info_by_outcomes(6)
info_by_outcomes(8)
print("---")
# Обратная задача: сколько вариантов кодирует 1, 3 и 10 бит?
outcomes_by_info(1)
outcomes_by_info(3)
outcomes_by_info(10)
Ожидаемый вывод:
N = 2 исходов -> i = 1.000 бит N = 6 исходов -> i = 2.585 бит N = 8 исходов -> i = 3.000 бит --- i = 1 бит -> N = 2 исходов i = 3 бит -> N = 8 исходов i = 10 бит -> N = 1024 исходов
Обратите внимание на кубик: 2,585 бита — то самое дробное значение из примера 2. А 10 бит ровно соответствуют 1024 вариантам — числу, которое вы наверняка узнаёте по килобайту.
Когда исходы неравновероятны: подход Шеннона
Формула Хартли честна только при равновероятных исходах. Но в жизни так бывает редко. Если в коробке 9 белых шаров и 1 чёрный, то сообщение «достали белый» почти не удивляет — оно несёт мало информации. А вот «достали чёрный» — событие редкое и потому информативное.
Идея Шеннона: чем менее вероятно событие, тем больше информации несёт сообщение о нём. Редкое и неожиданное сообщение информативнее частого и предсказуемого.
Формула Шеннона учитывает вероятность каждого исхода и в среднем даёт меньшее количество информации, чем формула Хартли для того же числа исходов. А когда все вероятности равны, формула Шеннона превращается ровно в формулу Хартли — то есть Хартли — это частный, самый простой случай.
Связь с алфавитным подходом
Если вы уже читали про алфавитный подход, формула покажется знакомой. И не зря: это одна и та же формула Хартли, только применённая к разным ситуациям.
| Подход | Что такое N | Что такое i |
|---|---|---|
| Содержательный | число равновероятных исходов события | информация о произошедшем исходе |
| Алфавитный | мощность алфавита (число символов) | информационный вес одного символа |
Появление каждого символа в тексте — это тоже «выбор одного из N равновозможных вариантов». Поэтому вес символа считается той же формулой i = log₂ N. Содержательный подход смотрит на события, алфавитный — на символы, но математика под ними общая.
Частые ошибки
- Применяют формулу Хартли к неравновероятным исходам. N = 2ⁱ работает, только когда все исходы равновозможны; иначе нужен подход Шеннона.
- Путают N и i. N — число вариантов, i — количество информации в битах. Связь только через i = log₂ N.
- Боятся дробного ответа. Для N = 6 получается ≈ 2,585 бита — это нормально, не всякое N является степенью двойки.
- Считают, что информации тем больше, чем вероятнее событие. Наоборот: редкое событие несёт больше информации.
Коротко
- Количество информации — это мера уменьшения неопределённости; 1 бит уменьшает число вариантов вдвое.
- Формула Хартли для N равновероятных исходов: N = 2ⁱ, то есть i = log₂ N.
- Угадать число от 1 до 8 — это 3 бита; бросок кубика (N = 6) — около 2,585 бита.
- Если исходы неравновероятны, работает формула Шеннона; при равных вероятностях она совпадает с Хартли.
- Алфавитный подход — это та же формула Хартли, где N — мощность алфавита, а i — вес символа.