Для передачи зашифрованных сообщений используется специальный алфавит из 400 символов. Сообщения передаются двоичным кодом, при этом используется равномерное посимвольное кодирование, каждый символ кодируется одинаковым для всех символов минимальным числом бит, а сообщение в целом — минимально возможным числом байт.
При передаче сообщение делится на группы размером не более 9 байт и к каждой такой группе добавляется заголовок из 1 байта.
Суммарный размер сообщения при передаче должен быть не более 1 Кбайт. Какое наибольшее количество символов может входить в одно сообщение?
Заметим, что
Для кодирования символов требуется
Обозначим х количество символов в сообщении.
округление вверх(х · 9 / 8 · 9) + округление вверх(х · 9 / 8) <= 1024.
округление вверх(х / 8) + 9 · x <= 1024 · 8.
Приведём решение Юрия Красильникова на языке Python.
from math import ceil
for x in range(1,1000):
b = 9*x+8*ceil(x/8)
if b <= 1024*8:
ans = x
print(ans)
Наибольшее количество символов которое может входить в одно сообщение 818.
Ответ: 818.
Приведём решение Александра Тарасова на языке Python.
from math import log2, ceil
i = int(ceil(log2(400))) # информационный вес символа
for x in range(700,1000): # промежуток в котором наход. отв.
s = ceil(x*i/8)# кол-во. байтов в сообщении
d = ceil(s/9)# кол. допол. байтов
if s+d <= 1024:
ans = x
else:
break
print(ans)

