Задание 11. Информатика. ЕГЭ. Поляков-7468
- Просмотры: 316
- Изменено: 10 апреля 2025
(ЕГЭ-2024) На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры, \(26\) латинских букв (без учёта регистра) и символы из \(8164\)-символьного специального алфавита. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения \(835\) серийных номеров отведено более \(156\) Кбайт памяти. Определите минимально возможную длину серийного номера. В ответе запишите только целое число.
Решение:
Мощность алфавита для серийных номеров равна \(10 + 26 + 8164 = 8200.\) Так как \( 2^{13} = 8192 < 8200 < 16~384 = 2^{14},\) то для кодирования одного символа необходимо минимум \(14\) бит. Пусть \(N\) — длина серийного номера. Тогда для его хранения требуется \(\left\lceil \cfrac{14N}{8}\right\rceil\) байт. Из условия задачи сразу получаем, что $$835 \cdot \left\lceil \cfrac{14N}{8}\right\rceil > 156 \cdot 2^{10}.$$ Минимальное \(N,\) удовлетворяющее этому неравенству, легко найти программно
Python
from math import ceil
print(min([N for N in range(1, 10_000) if 835 * ceil(14 * N / 8) > 156 * 2**10]))
Ответ: \(110\)