Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
1 сентября 2022 20:51
934
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, решилииспользовать неравномерный двоичный код, удовлетворяющий условию Фано. Для буквы А
использовали кодовое слово 1, для буквы Б – кодовое слово 001. Какова наименьшая
возможная суммарная длина всех четырёх кодовых слов? как делать это задание?
1
ответ
Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
0
·
Хороший ответ
1 сентября 2022 20:51
Остались вопросы?
Еще вопросы по категории Информатика
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через 3, 6, 9,..., 24 часа, если первоначально была одна амеба...
какая конструкция представлена? begin s:=0; for k:=6 to 12 do s:=s+10; writeln(s); end. 1)следование 2)ветвление 3)повторение...
Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Подсчи...
Паскаль, ошибка Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла Var a: array [1..5] of integer; begin begin a := random(50...
Определите значение переменной «c» после выполнения фрагмента программы: c = 27 if c >10 and c % 3 == 0: &nb...