решай.ai · шпаргалка

Задание 11: Вычисление количества информации

ЕГЭ Информатика

Как выглядит

Типичная формулировка: «Пароль состоит из LL символов и содержит только символы из алфавита мощностью NN. Для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт, символы кодируются одинаковым минимальным числом бит. Кроме пароля хранятся дополнительные сведения объёмом DD байт. Определите объём памяти для хранения сведений о KK пользователях» — либо обратная задача, где известен итоговый объём, а найти нужно одну из величин (LL, NN, DD или KK).

…

Что нужно знать

  • Формула Хартли для определения числа бит на символ: если алфавит содержит NN символов, то количество бит ii, необходимое для кодирования одного символа, находится из условия 2i≥N2^i \ge N, при этом берётся наименьшее подходящее целое ii.
  • Если NN — степень двойки, то i=log⁡2Ni = \log_2 N точно. Если нет — ii округляется вверх: i=⌈log⁡2N⌉i = \lceil \log_2 N \rceil.
  • Объём одного пароля в битах: Vбит=i⋅LV_{бит} = i \cdot L, где LL — длина пароля в символах.
  • Перевод бит в байты: 1 байт=8 бит1 \text{ байт} = 8 \text{ бит}, значит Vбайт=Vбит/8V_{байт} = V_{бит} / 8.
  • Если при делении на 8 получается не целое число, объём округляется вверх до целого числа байт — это ключевое требование условия задачи («минимально возможное целое число байт»).
  • Полный объём сведений об одном пользователе: S=Vбайт(пароль)+DS = V_{байт}(пароль) + D, где DD — объём дополнительных сведений в байтах.
  • Объём памяти для KK пользователей: M=S⋅KM = S \cdot K.
  • В обратных задачах те же формулы применяются «в обратную сторону»: из известного MM и KK находится SS, а затем недостающая часть (например, DD) через вычитание известной части.

Алгоритм

  1. Определить мощность алфавита NN — посчитать количество различных символов, перечисленных в условии.
  2. Найти минимальное число бит на символ: подобрать наименьшее целое ii, при котором 2i≥N2^i \ge N.
  3. Вычислить объём одного пароля в битах: i⋅Li \cdot L, где LL — длина пароля.
  4. Перевести объём пароля в байты делением на 8; если результат не целый — округлить вверх до следующего целого.
  5. Прибавить к объёму пароля объём дополнительных сведений DD (если он дан в условии) — получить объём записи об одном пользователе SS.
  6. Если требуется найти общий объём — умножить SS на число пользователей KK.
  7. Если в условии дана обратная ситуация (известен общий объём или объём на одного пользователя, а что-то нужно найти) — выразить искомую величину из соответствующей формулы и проверить целостность и физическую осмысленность результата. …

Ловушки

  • Округление бит на символ вниз вместо вверх. Если алфавит содержит 12 символов, log⁡212≈3.58\log_2 12 \approx 3.58, и часто ошибочно берут i=3i=3 (округление до целой части), хотя нужно i=4i=4, так как 3 бита дают только 23=82^3=8 комбинаций — этого не хватит на 12 символов.
  • Забытое округление объёма пароля в байтах. Если получилось дробное число байт (например, 7.5), нельзя оставить его дробным или округлить вниз — по условию задачи выделяется минимальное целое число байт, значит округление строго вверх.
  • Округление объёма пароля в битах вместо байтов. Округлять нужно именно после перевода в байты, а не сам результат умножения i⋅Li \cdot L, который всегда целый по построению.
  • Путаница между объёмом на одного пользователя и общим объёмом. При решении обратных задач важно чётко разделять SS (на одного) и MM (на всех), иначе легко разделить или умножить на неверное число. …
reshay.ai/ege/informatika/zadanie-11 — задачи с разборами и тренажёр

Полный гайд и задачи задания 11 →