Найти в Дзене

Разбор номера 23195 #КЕГЭ по информатике #ЕГЭ11

Автор: Основная волна 10.06.25
Уровень: Базовый Условие задачи: На предприятии каждой изготовленной детали присваивают серийный номер, состоящий из 172 символов. В базе данных каждый серийный номер занимает одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 356 984 серийных номеров потребовалось не менее 54 Мбайт памяти.
Определите минимально возможную мощность алфавита, используемого для записи серийных номеров. В ответе запишите только целое число. Код решения: Ответ: 129 Комментарии к коду: from math import *
Импортируем все функции из модуля math, включая log2 и ceil for alf in range(1, 10000):
Перебираем значения alf от 1 до 9999 (ищем минимальное подходящее значение) bit = ceil(log2(alf))
Вычисляем минимальное количество бит, необходимое для кодирования одного символа алфавита размером alf byte = ceil(172 * bit / 8)
Вычисляем
Оглавление

Автор: Основная волна 10.06.25
Уровень: Базовый

Условие задачи:

На предприятии каждой изготовленной детали присваивают серийный номер, состоящий из 172 символов. В базе данных каждый серийный номер занимает одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 356 984 серийных номеров потребовалось не менее 54 Мбайт памяти.
Определите минимально возможную мощность алфавита, используемого для записи серийных номеров. В ответе запишите только целое число.

Код решения:

Ответ: 129
Ответ: 129

Комментарии к коду:

  1. from math import *
    Импортируем все функции из модуля math, включая log2 и ceil
  2. for alf in range(1, 10000):
    Перебираем значения alf от 1 до 9999 (ищем минимальное подходящее значение)
  3. bit = ceil(log2(alf))
    Вычисляем минимальное количество бит, необходимое для кодирования одного символа алфавита размером alf
  4. byte = ceil(172 * bit / 8)
    Вычисляем размер одного пароля в байтах: 172 символа × бит на символ ÷ 8 бит в байте
  5. if 356984 * byte >= 54 * 1024 * 1024:
    Проверяем, что общий размер 356984 паролей превышает или равен 54 МБ (54 × 1024 × 1024 байт)
  6. print(alf)
    Выводим найденное значение размера алфавита
  7. break
    Прерываем цикл после нахождения первого подходящего значения (минимального alf)
Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻
Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!