Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Каждому изготовленному на заводе двигателю присваивается уникальный серийный номер, содержащий десятичные цифры и символы из 70-символьного специального алфавита. В базе данных каждый серийный номер занимает одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийный номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что 1 234 567 серийных номеров занимают более 24 Мбайт памяти.
Определите максимально возможную длину серийного номера.
В ответе запишите только целое число.
from math import ceil, log2
alphabet = 70 + 10
nums = 1_234_567
memory_size = 24 * 2 ** 20
# Подбором в цикле
for serial_num_len in range(1, 30):
bits = ceil(log2(alphabet))
bytes = ceil(serial_num_len * bits / 8)
if nums * bytes >= memory_size:
print(serial_num_len)
break
