Смотрите. Тут правда есть немного лишнего. Противоположные стороны всё таки проверять не надо. Хватит 4х углов. Но текст комментирован, лишнее можно убрать. поясняющих картинок нет. но вопрос и так слишком долго живёт без ответа. Мне казалось срок жизни 2-3 дня максимум, а тут 5 дней минуло. Если что, отправляйте на исправление. дома дорисую. Главное программа работает. Правда есть подозрения, что не во всех Паскалях (как они относятся к объявлению массива массивов?) Это был Free Pascal Compiler version 2.6.4 [2014/04/20] for i386 В версии 3.0.0. думаю, тоже сработает
P.S.Добавил возможные варианты (не все, ясное дело) расположения точек.
Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
Если что, отправляйте на исправление. дома дорисую.
Главное программа работает. Правда есть подозрения, что не во всех Паскалях (как они относятся к объявлению массива массивов?)
Это был Free Pascal Compiler version 2.6.4 [2014/04/20] for i386
В версии 3.0.0. думаю, тоже сработает
P.S.Добавил возможные варианты (не все, ясное дело) расположения точек.