Как найти вычеркнутое слово из списка растений, если каждый символ кодируется водной из кодировок Unicode 2 байтами?
Как найти вычеркнутое слово из списка растений, если каждый символ кодируется водной из кодировок Unicode 2 байтами? Когда Вова написал текст "к семейству тыквенные относят около 700 видов растений, среди них тыква, дыня, огурец, кабачок, патиссон, лагенария, кассабанана", он вычеркнул одно из названий растений. При этом новое предложение оказалось на 160 бит меньше в данной кодировке. Как найти вычеркнутое слово?
Язык 56
Для решения этой задачи, нам потребуется выяснить сколько байт занимает каждое слово в списке растений и определить какое из них было вычеркнуто. Известно, что каждый символ в данной кодировке занимает 2 байта.Дано:
Текст перед вычеркиванием: "к семейству тыквенные относят около 700 видов растений, среди них тыква, дыня, огурец, кабачок, патиссон, лагенария, кассабанана"
Текст после вычеркивания: размер уменьшился на 160 бит.
Для начала, нужно определить, сколько байт занимает каждое слово в заданном тексте. Зная, что каждый символ кодируется 2 байтами, подсчитаем количество символов в каждом слове:
1. "семейству" - 11 символов * 2 байта = 22 байта
2. "тыквенные" - 10 символов * 2 байта = 20 байт
3. "относят" - 7 символов * 2 байта = 14 байт
4. "около" - 5 символов * 2 байта = 10 байт
5. "700" - 3 символа * 2 байта = 6 байт
6. "видов" - 5 символов * 2 байта = 10 байт
7. "растений" - 8 символов * 2 байта = 16 байт
8. "среди" - 5 символов * 2 байта = 10 байт
9. "них" - 3 символа * 2 байта = 6 байт
10. "тыква" - 5 символов * 2 байта = 10 байт
11. "дыня" - 4 символа * 2 байта = 8 байт
12. "огурец" - 6 символов * 2 байта = 12 байт
13. "кабачок" - 7 символов * 2 байта = 14 байт
14. "патиссон" - 9 символов * 2 байта = 18 байт
15. "лагенария" - 10 символов * 2 байта = 20 байт
16. "кассабанана" - 12 символов * 2 байта = 24 байта
Теперь посмотрим, сколько байт занимает исходный текст:
Исходный текст: 22 + 20 + 14 + 10 + 6 + 5 + 8 + 5 + 3 + 5 + 4 + 6 + 7 + 9 + 10 + 12 = 156 байт
Из условия задачи нам известно, что размер текста после вычеркивания уменьшился на 160 бит. Так как каждый символ занимает 2 байта, то 160 бит = 20 байт.
Теперь найдем разницу в байтах между каждым словом и исходным текстом:
Разница для каждого слова:
1. "семейству": 20 байт - 22 байта = -2 байта
2. "тыквенные": 20 байт - 20 байт = 0 байт
3. "относят": 20 байт - 14 байт = 6 байт
4. "около": 20 байт - 10 байт = 10 байт
5. "700": 20 байт - 6 байт = 14 байт
6. "видов": 20 байт - 10 байт = 10 байт
7. "растений": 20 байт - 16 байт = 4 байта
8. "среди": 20 байт - 10 байт = 10 байт
9. "них": 20 байт - 6 байт = 14 байт
10. "тыква": 20 байт - 10 байт = 10 байт
11. "дыня": 20 байт - 8 байт = 12 байт
12. "огурец": 20 байт - 12 байт = 8 байт
13. "кабачок": 20 байт - 14 байт = 6 байт
14. "патиссон": 20 байт - 18 байт = 2 байта
15. "лагенария": 20 байт - 20 байт = 0 байт
16. "кассабанана": 20 байт - 24 байта = -4 байта
Видим, что разница в байтах может быть только положительной, так как размер текста уменьшился. Значит, вычеркнутое слово имеет положительную разницу в байтах.
Таким образом, вычеркнутое слово - это "относят", так как оно имеет наибольшую положительную разницу в байтах (6 байт).