В кодировке КОИ-8 каждый символ кодируется 8 битами. Вова написал текст (в нём нет лишних пробелов)
"Алый, синий, фуксия, красный, янтарный, оранжевый, фиолетовый, канареечный, баклажановый - цвета"
Ученик вычеркнул из списка название одного цвета. Заодно он вычеркнул ставшие лишними запятую и пробел - два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 9 байт меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название цвета.
Перед тем как начать, давайте преобразуем строку из символов в байты в кодировке КОИ-8. Для этого будем использовать таблицу КОИ-8.
Вот кодировка КОИ-8 для русских символов и некоторых дополнительных символов:
А - 11000001
л - 11101100
ы - 10001011
, - 00101100
...
Теперь зная кодировку КОИ-8, давайте посчитаем размер исходного предложения в байтах:
"Алый, синий, фуксия, красный, янтарный, оранжевый, фиолетовый, канареечный, баклажановый - цвета"
В данном предложении мы имеем 22 символа. Каждый символ кодируется 8 битами, поэтому общий размер этой фразы в байтах составляет:
22 символа * 8 бит = 176 бит
Проверим вариант с вычеркнутыми лишними символами:
"Алый синий фуксия красный янтарный оранжевый фиолетовый канареечный баклажановый - цвета"
Здесь мы видим, что у нас осталось 9 слов, разделенных пробелами. В каждом слове 5 символов. Знак "дефис" (–) также считается символом. Каждый символ кодируется 8 битами, поэтому общий размер этой фразы в байтах составляет:
9 слов * 5 символов * 8 бит = 360 бит
Теперь давайте вычтем из размера исходной фразы размер новой фразы и посмотрим на разницу:
176 бит - 360 бит = -184 бит
Мы получили отрицательное число, что не является допустимым результатом в данном случае. Значит, где-то допущена ошибка.
Одна из возможных ошибок - вычеркнутое слово содержит название цвета "фуксия". Попробуем вернуть это слово и посчитаем размер новой фразы еще раз:
"Алый, синий, фуксия, красный, янтарный, оранжевый, фиолетовый, канареечный, баклажановый - цвета"
Теперь у нас есть 10 слов, разделенных запятыми. В каждом слове 5 символов. Знак "дефис" (–) также считается символом. Каждый символ кодируется 8 битами, поэтому общий размер этой фразы в байтах составляет:
10 слов * 5 символов * 8 бит = 400 бит
Вычтем из размера исходной фразы размер новой фразы:
176 бит - 400 бит = -224 бит
Мы снова получили отрицательное число. Значит, ошибка не в слове "фуксия".
Единственное оставшееся слово для проверки - "канареечный". Попробуем вернуть его в фразу и посчитаем размер новой фразы:
"Алый, синий, фуксия, красный, янтарный, оранжевый, фиолетовый, канареечный, баклажановый - цвета"
Теперь у нас есть 10 слов, разделенных запятыми. В каждом слове 5 символов. Знак "дефис" (–) также считается символом. Каждый символ кодируется 8 битами, поэтому общий размер этой фразы в байтах составляет:
10 слов * 5 символов * 8 бит = 400 бит
Вычтем из размера исходной фразы размер новой фразы:
176 бит - 400 бит = -224 бит
Мы снова получили отрицательное число. Значит, ошибка не в слове "канареечный".
Последнее слово для проверки - "баклажановый". Попробуем вернуть его в фразу и посчитаем размер новой фразы:
"Алый, синий, фуксия, красный, янтарный, оранжевый, фиолетовый, канареечный, баклажановый - цвета"
Теперь у нас есть 10 слов, разделенных запятыми. В каждом слове 5 символов. Знак "дефис" (–) также считается символом. Каждый символ кодируется 8 битами, поэтому общий размер этой фразы в байтах составляет:
10 слов * 5 символов * 8 бит = 400 бит
Вычтем из размера исходной фразы размер новой фразы:
176 бит - 400 бит = -224 бит
Мы снова получили отрицательное число. Значит, ошибка не в слове "баклажановый".
Таким образом, проведя все возможные проверки, мы приходим к выводу, что название цвета, вычеркнутое из списка, составляет 3 слова. Среди оставшихся слов в фразе "Алый, синий, фуксия, красный, янтарный, оранжевый, фиолетовый, канареечный, баклажановый - цвета" только слово "фуксия" состоит из 3 слов.
Значит, пропущенное название цвета - "фуксия".