Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, Ж решили
использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В, Г
использовали соответственно кодовые слова 00, 01, 100, 101. Укажите кратчайшее возможное
кодовое слово для буквы Д, при котором код будет допускать однозначное декодирование. Если
таких кодов несколько, укажите код с наименьшим числовым значением.
2.Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, Ж решили
использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В, Г
использовали соответственно кодовые слова 00, 010, 011, 11. Укажите кратчайшее возможное
кодовое слово для буквы Д, при котором код будет допускать однозначное декодирование. Если
таких кодов несколько, укажите код с наименьшим числовым значением.
3. ) Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, используется
неравномерный двоичный код
ответ:
округлением чисел в python занимается встроенная функция round.
round(number[, ndigits]) - округляет число number до ndigits знаков после запятой (по умолчанию, до нуля знаков, то есть, до ближайшего целого)
тут есть одна особенность, о которой нужно знать, и о которой часто забывают.
со школы многие привыкли, что, когда (n + 1) знак = 5, а последующие знаки равны нулю, округление производится всегда в большую по модулю сторону.
однако, как видно из примеров, в python это не так. здесь используется так называемое "банковское округление", то есть округление к ближайшему чётному.
на практике это оказывается не так уж и важно
что-то не так, правда? на самом деле, всё именно так, как и задумывалось. просто из-за проблем с точностью чисел с плавающей точкой это число чуть больше, чем 2.85, а потому округляется до 2.9