Задача #2393

Кодирование

Уровень ЕГЭ

(О. Лысенков) Петя кодирует сообщение, при этом он использует алфавит из 33 символов, одними из которых являются «:», «)» и «😀». Он знает, что символ «😀» встретится в сообщении 15 раз, притом, что всего будет 1000 символов. Компьютер Пети для хранения сообщения отводит минимально возможное количество бит, каждый символ кодируется с помощью минимального количества бит. Но Пете этого мало и он хочет сэкономить память по максимуму, поэтому ему пришла на ум идея взамен этого алфавита использовать алфавит из 32 символов, заменив «😀» на сочетание символов «:» и «)», получив соответственно «:)». К сожалению, Петя, плохо знает информатику, поэтому просит у вас помощи. Помогите ему понять, что ему выгоднее: использовать алфавит из 33 символов или же заменить его на алфавит из 32 символов, заменив все «😀» на «:)»? Напишите букву А, если выгоднее способ с 33 символами или букву Б, если способ с 32 символами, также после укажите разницу между этими двумя способами в битах. Так, например, если первый способ выгоднее и разница была бы равна 35, то вам необходимо было бы вывести А35.

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

Б925

Рассмотрим ситуацию, если у нас 33 символа:

1) N=33i=6

Количество символ в сообщении K=1000, значит

2) I=K×i=1000×6=6000 бит необходимо для кодирования первым способом.

Рассмотрим ситуацию, если у нас 32 символа:

Так как 32 символа получилось за счет того, что каждый "😀" в сообщении будет заменён на ":)", то есть на 2 символа, то найдем новое количество символов в сообщении.

Так как в сообщении было 1000 символов, из них 15 "😀", то без "😀" получаем 985 символов.

15 "😀" меняются в таком случае на 15×2=30 символов.

Новое сообщение состоит из 985 символов + 30 символов, которые меняют 15 "😀". Итого K=1015

1) N=32i=5

2) I=K×i=1015×5=5075 бит

По итогу получили, что в первой ситуации 6000 бит, а во второй 5075, поэтому вторая ситуация выгоднее. Разница между информационным объёмом в первом и втором варианте =60005075=925

Ответ: Б925

Быстрый переход
Перейти к задаче