Задание 11. Информатика. ЕГЭ. Поляков-7467

Просмотры: 498
Изменено: 10 апреля 2025

(ЕГЭ-2024) На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры, \(52\) латинские буквы (с учётом регистра) и символы из \(458\)-символьного специального алфавита. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения \(862\) серийных номеров отведено не более \(276\) Кбайт памяти. Определите максимально возможную длину серийного номера. В ответе запишите только целое число.

Решение:

Мощность алфавита для серийных номеров равна \(10 + 52 + 458 = 520.\) Так как \( 2^9 = 512 < 520 < 1024 = 2^{10},\) то для кодирования одного символа необходимо минимум \(10\) бит. Пусть \(N\) — длина серийного номера. Тогда для его хранения требуется \(\left\lceil \cfrac{10N}{8}\right\rceil\) байт. Из условия задачи сразу получаем, что $$862 \cdot \left\lceil \cfrac{10N}{8}\right\rceil \leqslant 276 \cdot 2^{10}.$$ Максимальное \(N,\) удовлетворяющее этому неравенству, легко найти программно

Python


from math import ceil

print(max([N for N in range(1, 10_000) if 862 * ceil(10 * N / 8) <= 276 * 2**10]))

Ответ: \(261\)