Вопрос:

В одной из кодировок Unicode каждый символ кодируется 32 битами. В письме своему другу Вова написал текст (в нём нет лишних пробелов): «За это лето мне удалось самому собрать и раскрасить несколько уменьшенных копий моделей автомобилей марок КИА, Форд, Лифан, Сузуки, Ситроен, Мицубиси, Ламборгини, Фольксваген».

Фотография

Ответ ассистента

Решение задания 1: 1. Каждый символ в Unicode кодируется 32 битами, что равно 4 байтам (32 / 8 = 4). 2. При удалении двух марок автомобилей также удаляются запятая и пробел для каждой (кроме случая, если удаляется последнее слово, но по условию «лишние запятые и пробелы» — значит, удаляются запятые, отделявшие эти слова, и пробелы). 3. Пусть $x$ — количество символов в первом названии (включая запятую и пробел), а $y$ — во втором. 4. Уменьшение размера на 100 байт означает, что количество удаленных символов равно: $100 / 4 = 25$ символов. 5. Список марок: КИА (3), Форд (4), Лифан (5), Сузуки (6), Ситроен (7), Мицубиси (8), Ламборгини (10), Фольксваген (10). 6. Нам нужно подобрать два названия, сумма длин которых с учетом запятой и пробела (т.е. +2 символа на каждое, кроме последнего, но здесь они удаляются «лишние»), даст 25. 7. Если удаляем слово (длина $n$) и запятую с пробелом (2 символа), удаляется $n+2$ символа. 8. $n_1 + 2 + n_2 + 2 = 25$ (если удаляем обе внутри списка) или $n_1 + 2 + n_2 = 25$ (если одно из них последнее). 9. Проверим варианты: - КИА (3) + 2 + Мицубиси (8) + 2 = 15 (мало) - Фольксваген (10) + 2 + Ламборгини (10) + 2 = 24 (почти) - Фольксваген (10) + 2 + Мицубиси (8) + 2 = 22 (мало) - Ситроен (7) + 2 + Ламборгини (10) + 2 = 21 (мало) - Если одна из марок — последняя (Фольксваген, 10), то удаляется 10 символов + слово + запятая + пробел: $n_1 + 2 + 10 = 25 \Rightarrow n_1 = 13$ (нет таких). - Вероятно, удаляются марки с учетом того, что запятые и пробелы между ними тоже считаются. Если мы удаляем две марки подряд, например, «Лифан, Сузуки», это: 5 (Лифан) + 2 (, ) + 6 (Сузуки) + 2 (, ) = 15. - Пересчитаем: нам нужно удалить ровно 25 символов. - Попробуем: Мицубиси (8) + 2 + Фольксваген (10) + 2 = 22. Мало. - Может быть, удаляется: «Ламборгини, Фольксваген» = 10 + 2 + 10 = 22 (если Фольксваген последний, то запятую после него не считаем, но запятая была перед ним). - Посмотрим внимательно на текст: «...Ситроен, Мицубиси, Ламборгини, Фольксваген». - Удаляем «Мицубиси» (8) и «Ламборгини» (10). Лишними становятся запятая и пробел после «Ситроен» (2) и после «Мицубиси» (2) или после «Ламборгини» (2). - $8 + 10 + 2 + 2 + 2 = 24$. Почти. - А «Фольксваген» (10) + «Ламборгини» (10) + 2 + 2 = 24. - Попробуем длину «Мицубиси» (8) + «Фольксваген» (10) + 2 + 2 (запятые/пробелы) = 22. - Попробуем «Ситроен» (7) + «Фольксваген» (10) + 2 + 2 = 21. - Попробуем «Сузуки» (6) + «Фольксваген» (10) + 2 + 2 = 20. - Стоп, возможно, в слове Фольксваген больше символов? Ф-о-л-ь-к-с-в-а-г-е-н (11). - Тогда: Фольксваген (11) + Ламборгини (10) + 2 + 2 = 25. - Самое короткое из них — Ламборгини. Ответ: Ламборгини Решение задания 2: 1100 1011 1010 1101 0001 001 Разбиваем согласно таблице (по 4 символа): 1100 = С 1011 = О 1010 = Л 1101 = Ч 0001 - такой комбинации нет в таблице. Перепроверим деление сообщения: 1100 | 1011 | 1010 | 1101 | 0 | 001 Вероятно, ошибка в условии или я неверно разбиваю. Давайте попробуем другие комбинации: 1100 (С), 1011 (О), 1010 (Л), 1101 (Ч), 0 (В), 0 (В), 0 (В), 1... Похоже, код для В — «0». 1100 (С), 1011 (О), 1010 (Л), 1101 (Ч), 0 (В), 0 (В), 0 (В), 1001 (Й)? Сообщение: 1100 1011 1010 1101 0 0 0 1001 С О Л Ч В В В Й Ответ: СОЛЧВВВЙ

Другие решения

Что ещё задавали пользователи