Вопрос:

Помоги закодировать слова АЛТАЙ, ГРАММ, КОРАН, чтобы код был как можно короче и удовлетворял условию Фано

Фотография

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

140) Давай разберемся, как закодировать слово ГРАММ, чтобы код был как можно короче и удовлетворял условию Фано. У нас уже есть коды для А, Б и Я: A – 11, Б – 101, Я – 010. Остаются буквы Г, И, М, Р, М. Нам нужно закодировать их так, чтобы ни один код не был началом другого (это и есть условие Фано). Чтобы использовать меньше знаков, нужно чаще встречающимся буквам давать более короткие коды. В слове ГРАММ буква М встречается дважды, поэтому ей лучше дать самый короткий код из оставшихся. Возможные варианты кодов: Г – 00, И – 100, М – 01, R – 1. Но код 1 использовать нельзя, так как тогда код буквы R будет началом кода буквы А (11), что нарушает условие Фано. Код 0 тоже нельзя использовать, так как тогда код буквы Г будет началом кода буквы Я (010). Поэтому придется использовать коды подлиннее: Г – 001, И – 100, М – 011, R – 10. Тогда слово ГРАММ будет кодироваться как 001101110011, что составляет 12 знаков. **Ответ: 12** 141) Здесь похожая задача. У нас есть буквы К, О, Р, А, Н и коды для А, Р и Я: А – 010, Р – 011, Я – 10. Нам нужно закодировать слово КОРАН. Буквы К, О, Н. Чтобы использовать меньше знаков, нужно чаще встречающимся буквам давать более короткие коды. Возможные варианты кодов: К – 00, О – 01, Н – 1. Но код 0 использовать нельзя, так как тогда код буквы К будет началом кода буквы А (010) и буквы О (01). Поэтому придется использовать коды подлиннее: К – 11, О – 001, Н – 1. Тогда слово КОРАН будет кодироваться как 110010110, что составляет 9 знаков. **Ответ: 9**

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

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