Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
# Код на ruby 2.2.3p173 def automate(n) a = n / 1000 b = n / 100 % 10 c = n / 10 % 10 d = n % 10 t = [a*b, c*d] return (t.max.to_s + t.min.to_s).to_i end
def zadanie() for i in 1000..9999 t = automate(i) p [t, i] if t == 174 end end # Примеры применения zadanie()
ответ - нет таких цифр
Аналитическое решение 174 можно разложить на 1 + 74 и 17 + 4 по правилу 2 это только 17 + 4 17 - произведение двух чисел, но 17 простое и произведение только 17 и 1. 17 не может быть одной цифрой Значит вариант 174 невозможен при таких правилах
ответ: color.ls
Объяснение: