Классная задача по информации: сколько бит кодируют результаты 7 матчей, если каждый матч может иметь k исходов.
Пошагово:
Обозначим k — число различных исходов одного матча.
- Вариант A: два исхода (победа/не победа) → k = 2.
- Вариант B: три исхода (победа/ничья/поражение) → k = 3.
Общее число возможных последовательностей результатов за 7 матчей: S = k^7.
Минимальное количество бит, необходимое для кодирования всех таких последовательностей:
- Идеально в связи с теорией информации это log2(S) = 7 * log2(k) бит.
- Однако на практике бит нужно заключить в целое число: количество бит должно быть не меньше ceil(log2(S)) = ceil(7 * log2(k)).
Рассчёты для конкретных вариантов:
Вариант A: k = 2
- S = 2^7 = 128
- log2(S) = log2(128) = 7
- ceil(log2(S)) = 7
- Вывод: 7 бит достаточно для однозначной кодировки всей последовательности (при условии идеального кодирования).
Вариант B: k = 3
- S = 3^7 = 2187
- log2(S) ≈ 7 * log2(3) ≈ 7 * 1.58496 ≈ 11.0947
- ceil(log2(S)) = 12
- Вывод: потребуется 12 бит для однозначной кодировки всей последовательности (поскольку 11 бит недостаточно).
- Примечания:
- В вашем расчёте упомянуто 7 * log2(k). Это даёт минимальную теоретическую сумму информации в битах (можно быть дробной). Чтобы кодировать конкретные последовательности с целым количеством бит на кодовое слово, обычно берут ceil(7 * log2(k)).
- Если исходы по матчам не равновероятны, формула с log2(…) остаётся теоретическим ориентиром по информации, но реальное кодирование может потребовать другой подход с учётом распределения вероятностей. В задаче же обычно рассматривают равновероятные варианты.
Если хотите, могу привести точные ответы под ваш выбранный вариант (2 или 3 исхода) и показать, как округлять до целого числа бит для практического кодирования. Также могу добавить примеры для другого k (например, 4 исхода) или обсудить, как это выглядит с реальными вероятностями исходов.