Задания
Версия для печати и копирования в MS Word
Тип 11 № 76226
i

Се­рий­ный номер де­та­ли со­сто­ит из 40 сим­во­лов. Для за­пи­си се­рий­но­го но­ме­ра ис­поль­зу­ют­ся ла­тин­ские буквы (строч­ные и про­пис­ные), де­ся­тич­ные цифры и сим­во­лы из до­пол­ни­тель­но­го на­бо­ра. В базе дан­ных для хра­не­ния каж­до­го се­рий­но­го но­ме­ра от­ве­де­но оди­на­ко­вое и ми­ни­маль­но воз­мож­ное число байт. При этом ис­поль­зу­ет­ся по­сим­воль­ное ко­ди­ро­ва­ние се­рий­ных но­ме­ров, все сим­во­лы ко­ди­ру­ют­ся оди­на­ко­вым и ми­ни­маль­но воз­мож­ным чис­лом бит.

Из­вест­но, что для хра­не­ния 1000 се­рий­ных но­ме­ров от­ве­де­но не более 60 Кбайт па­мя­ти. Опре­де­ли­те мак­си­маль­но воз­мож­ное число сим­во­лов в спе­ци­аль­ном ал­фа­ви­те. В от­ве­те за­пи­ши­те толь­ко целое число.

Спрятать решение

Ре­ше­ние.

Мощ­ность ал­фа­ви­та равна M  =  2 · 26 + 10 + x, где x  — ко­ли­че­ство спец. сим­во­лов. Также мощ­ность ал­фа­ви­та равна M  =  2i, где i  — вес од­но­го сим­во­ла ал­фа­ви­та в бит. По усло­вию за­да­чи N  =  40, n  =  1000. Сле­до­ва­тель­но, объём од­но­го кода по­лу­ча­ет­ся: V1  =  i · N. Весь объём равен

V  =  nV1  =  niN  =  60 Кбайт  =  491520 бит,

от­ку­да

i  =  491520/(nN)  ≈  12 бит,

округ­ля­ет­ся в мень­шую сто­ро­ну, чтоб хва­ти­ло места. Итак, M  =  2i  =  4096, сле­до­ва­тель­но,

  2 · 26 + 10 + x  =  4096,

зна­чит, x  =  4034.

 

Ответ: 4034.

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

for k in range(100,1,-1): # длина кода сим­во­ла в битах

bits = k*40 # длина се­рий­но­го но­ме­ра в битах

bytes = bits//8

if bits%8 != 0: bytes+=1 # длина се­рий­но­го но­ме­ра в бай­тах

if bytes*1000 <= 60*1024: # если 1000 но­ме­ров за­ни­ма­ют не более 60К:

print(2**k-2*26-10)

break

Источник: Проб­ный ЕГЭ Санкт-Пе­тер­бург, 20.02.2025. Ва­ри­ант 2