Задание 11. Информатика. ЕГЭ. Поляков-7552
- Просмотры: 502
- Изменено: 10 апреля 2025
(ЕГЭ-2024) На предприятии каждой изготовленной детали присваивается серийный номер, содержащий десятичные цифры и символы из \(2030\)-символьного специального алфавита. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения \(318\) серийных номеров отведено более \(67\) Кбайт памяти. Определите минимально возможную длину серийного номера. В ответе запишите только целое число.
Решение:
\(10 + 2030 = 2040 < 2048 = 2^{11}.\) Значит для кодирования одного символа требуется как минимум \(11\) бит. Пусть серийный номер состоит из \(N\) символов. Тогда для него необходимо выделить в памяти минимум \(\left\lceil \cfrac{11 \cdot N}{8} \right\rceil\) байт. Получаем следующее ограничение на \(N:\) $$318 \cdot \left\lceil \frac{11 \cdot N}{8} \right\rceil > 67 \cdot 2^{10}$$ Определить минимальный \(N\) легко программно:
Python
from math import ceil
print(min([N for N in range(1, 10_000) if 318 * ceil(11 * N / 8) > 67 * 2**10]))
Ответ: \(157\)