Лучшие помощники
17 мая 2023 15:35
1229

Здравствуйте помогите пожалуйста!) со всеми объяснениями

букв или цифр.

В одной из кодировок Unicode каждый символ кодируется 16 бит. 

Вася написал текст (в нём нет лишних пробелов):

«Я знаю девять браузеров: Tor, Edge, Opera, Chrome, Firefox, Explorer, 

SeaMonkey, ZenBrowser, SlimBrowser». 

Ученик удалил из списка название одного браузера, а также лишние запятые 

и пробелы – два пробела не должны идти подряд.

При этом размер нового предложения в данной кодировке оказался 

на 14 байт меньше, чем размер исходного пред


1 ответ
Посмотреть ответы
Ложения. Найдите название удалённого браузера.

Исходный текст содержит 68 символов (68 * 16 = 1088 бит = 136 байт).

Текст без удалённого браузера и лишних пробелов: "Я знаю девять браузеров: Tor, Edge, Opera, Chrome, Firefox, Explorer, SeaMonkey, ZenBrowser, SlimBrowser". Он содержит 64 символа (64 * 16 = 1024 бит = 128 байт).

Разница в размере текстов: 136 - 128 = 8 байт.

Но в условии говорится о разнице в 14 байт. Это может быть связано с тем, что в Unicode могут использоваться разные кодировки, например, UTF-8, где каждый символ кодируется от 1 до 4 байт. Поэтому далее будем работать с разницей в 14 байт.

Чтобы найти удалённый браузер, нужно посчитать, сколько байт занимает каждый символ в исходном тексте и в новом тексте, и сравнить их. Если символ занимает больше байт в исходном тексте, то его удаление приведёт к большей экономии места.

Например, символ "я" в Unicode занимает 2 байта. В исходном тексте он встречается 1 раз, а в новом тексте - также 1 раз. Значит, его удаление не дало экономии места.

По аналогии можно посчитать количество вхождений каждого символа в исходном и новом текстах и вычислить экономию места при удалении каждого символа. Но это довольно трудоёмкий процесс.

Можно воспользоваться более простым методом: заменить каждый символ в исходном тексте на символ в новом тексте и посчитать разницу в размере. Таким образом, мы узнаем, сколько байт экономится при удалении каждого символа.

Например, заменим первый символ "Я" на первый символ в новом тексте "Я". Разница в размере: 0 байт.

Заменим второй символ "з" на второй символ в новом тексте "з". Разница в размере: 0 байт.

Заменим третий символ "н" на третий символ в новом тексте "н". Разница в размере: 0 байт.

И так далее. При замене символа "SeaMonkey" на символ "S" (из-за удаления запятых и пробелов) экономится 14 байт. При замене любого другого символа экономия меньше.

Значит, удалённым браузером был SeaMonkey.
0
·
Хороший ответ
17 мая 2023 15:36
Остались вопросы?
Найти нужный