Вопрос:

В одной из кодировок Unicode каждый символ кодируется 16 бит. Вова написал текст (в нём нет лишних пробелов): «Чиж, грач, стриж, гагара, пингвин, ласточка, жаворонок, свиристель, буревестник, вертиголовка – птицы». Ученик вычеркнул из списка название одной птицы. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 18 байт меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название птицы.

Смотреть решения всех заданий с листа

Ответ:

Дано:

  • Текст: «Чиж, грач, стриж, гагара, пингвин, ласточка, жаворонок, свиристель, буревестник, вертиголовка – птицы».
  • Кодировка: Unicode, 16 бит на символ.
  • Удалено: 1 название птицы, лишние запятые и пробелы.
  • Уменьшение размера: 18 байт.

Решение:

  1. Подсчет символов в исходном тексте:
    1. Количество слов (названий птиц): 10
    2. Количество запятых: 9
    3. Количество пробелов между словами: 9
    4. Знаков препинания (тире, кавычки, скобки): 5
    5. Букв в названиях птиц: 46
    6. Букв в служебных словах ('птицы'): 5
    7. Всего символов в исходном тексте: 46 (буквы) + 9 (запятые) + 9 (пробелы) + 5 (знаки) + 5 (служебные слова) = 74 символа.
  2. Перевод в байты:
    1. Размер одного символа: 16 бит = 2 байта.
    2. Размер исходного текста: 74 символа * 2 байта/символ = 148 байт.
  3. Расчет количества удаленных символов:
    1. Уменьшение размера: 18 байт.
    2. Количество удаленных символов: 18 байт / 2 байта/символ = 9 символов.
  4. Анализ удаленных символов:
    1. Удалена 1 птица (слово).
    2. Удалены лишние запятые и пробелы.
    3. Ключевое условие: два пробела не должны идти подряд. Это значит, что после удаления слова, каждая запятая, которая была между словами, а также пробел перед и после неё, удаляются.
    4. Рассмотрим варианты удаления:
      • Если удаляем слово из середины: Удаляется само слово (X букв) + 1 запятая перед ним + 1 пробел перед ним + 1 пробел после него + 1 запятая после него. Общее количество удаляемых символов: X + 4.
      • Если удаляем первое или последнее слово: Удаляется само слово (X букв) + 1 пробел после (или перед) него + 1 запятая после (или перед) него. Общее количество удаляемых символов: X + 2.
    5. Поиск слова, удаление которого с запятыми и пробелами дает 9 символов:
      • Названия птиц: Чиж (3), грач (4), стриж (5), гагара (5), пингвин (6), ласточка (8), жаворонок (9), свиристель (10), буревестник (11), вертиголовка (12).
      • Пробуем удалить «чиж» (3 буквы): 3 (слово) + 2 (запятая и пробел после) = 5 символов. Не подходит.
      • Пробуем удалить «грач» (4 буквы): 4 (слово) + 2 (запятая и пробел после) = 6 символов. Не подходит.
      • Пробуем удалить «стриж» (5 букв): 5 (слово) + 2 (запятая и пробел после) = 7 символов. Не подходит.
      • Пробуем удалить «гагара» (5 букв): 5 (слово) + 2 (запятая и пробел после) = 7 символов. Не подходит.
      • Пробуем удалить «пингвин» (6 букв): 6 (слово) + 2 (запятая и пробел после) = 8 символов. Не подходит.
      • Пробуем удалить «ласточка» (8 букв): 8 (слово) + 2 (запятая и пробел после) = 10 символов. Не подходит.
      • Пробуем удалить «жаворонок» (9 букв): 9 (слово) + 2 (запятая и пробел после) = 11 символов. Не подходит.
      • Пробуем удалить «свиристель» (10 букв): 10 (слово) + 2 (запятая и пробел после) = 12 символов. Не подходит.
      • Пробуем удалить «буревестник» (11 букв): 11 (слово) + 2 (запятая и пробел после) = 13 символов. Не подходит.
      • Пробуем удалить «вертиголовка» (12 букв): 12 (слово) + 2 (запятая и пробел после) = 14 символов. Не подходит.
      • Теперь пробуем удалить слово из середины. Например, «стриж». Удаляется «стриж» (5 букв), запятая перед ним, пробел перед ним, пробел после него, запятая после него. Всего: 5 (буквы) + 1 (запятая) + 1 (пробел) + 1 (пробел) + 1 (запятая) = 9 символов.
      • Проверим другие слова из середины:
        • «гагара» (5 букв): 5 + 4 = 9 символов.
        • «пингвин» (6 букв): 6 + 4 = 10 символов.
        • «ласточка» (8 букв): 8 + 4 = 12 символов.
      • Таким образом, удаленное слово может быть «стриж» или «гагара».
      • Условие: «два пробела не должны идти подряд». Это условие уже выполняется в исходном тексте, потому что между словами стоят только одиночные пробелы.
      • Перечитаем условие: «Заодно он вычеркнул ставшие лишними запятые и пробелы». Это означает, что после удаления слова, те запятые и пробелы, которые остались без слов, тоже удаляются.
      • Вернемся к примеру с «стриж»:
        • Исходный фрагмент: «грач, стриж, гагара»
        • После удаления «стриж»: «грач, гагара» (два пробела подряд).
        • Убираем один лишний пробел: «грач, гагара».
        • Удаленные символы: «стриж» (5 букв) + 1 запятая перед ним + 1 пробел перед ним + 1 пробел после него + 1 запятая после него = 9 символов.
      • Вернемся к примеру с «гагара»:
        • Исходный фрагмент: «стриж, гагара, пингвин»
        • После удаления «гагара»: «стриж, пингвин» (два пробела подряд).
        • Убираем один лишний пробел: «стриж, пингвин».
        • Удаленные символы: «гагара» (5 букв) + 1 запятая перед ним + 1 пробел перед ним + 1 пробел после него + 1 запятая после него = 9 символов.
      • Итак, вычеркнутое название птицы — либо «стриж», либо «гагара».
      • Дополнительное условие: «При этом размер нового предложения в данной кодировке оказался на 18 байт меньше». Это соответствует удалению 9 символов.
      • Условие «два пробела не должны идти подряд» также выполняется, так как после удаления лишних запятых и пробелов, между словами останется только один пробел.
      • Смотрим список слов: «Чиж, грач, стриж, гагара, пингвин, ласточка, жаворонок, свиристель, буревестник, вертиголовка».
      • «Стриж» — 5 букв. Удаление: «стриж», запятая перед, пробел перед, пробел после, запятая после. 5 + 1 + 1 + 1 + 1 = 9 символов.
      • «Гагара» — 5 букв. Удаление: «гагара», запятая перед, пробел перед, пробел после, запятая после. 5 + 1 + 1 + 1 + 1 = 9 символов.
      • «Пингвин» — 6 букв. Удаление: «пингвин», запятая перед, пробел перед, пробел после, запятая после. 6 + 1 + 1 + 1 + 1 = 10 символов.
      • «Ласточка» — 8 букв. Удаление: «ласточка», запятая перед, пробел перед, пробел после, запятая после. 8 + 1 + 1 + 1 + 1 = 12 символов.
      • «Жаворонок» — 9 букв. Удаление: «жаворонок», запятая перед, пробел перед, пробел после, запятая после. 9 + 1 + 1 + 1 + 1 = 13 символов.
      • «Свиристель» — 10 букв. Удаление: «свиристель», запятая перед, пробел перед, пробел после, запятая после. 10 + 1 + 1 + 1 + 1 = 13 символов.
      • «Буревестник» — 11 букв. Удаление: «буревестник», запятая перед, пробел перед, пробел после, запятая после. 11 + 1 + 1 + 1 + 1 = 15 символов.
      • «Вертиголовка» — 12 букв. Удаление: «вертиголовка», запятая перед, пробел перед, пробел после, запятая после. 12 + 1 + 1 + 1 + 1 = 15 символов.
      • «Чиж» — 3 буквы. Удаление: «чиж», пробел после, запятая после. 3 + 1 + 1 = 5 символов.
      • «Грач» — 4 буквы. Удаление: «грач», пробел после, запятая после. 4 + 1 + 1 = 6 символов.
      • Наиболее вероятный вариант — «стриж» или «гагара», так как при их удалении вместе с окружающими знаками препинания и пробелами, общее количество удаленных символов составит 9.
  5. Итого: удалено 9 символов, что соответствует 18 байтам. Это достигается при удалении слова из 5 букв, которое было окружено запятой и пробелами с обеих сторон.

Ответ: стриж

ГДЗ по фото 📸
Подать жалобу Правообладателю