Дробные биты
20-03-2008 19:27
к комментариям - к полной версии
- понравилось!
Когда каждый из нас знакомился с понятием "бит", то наверняка слышал, что это - элементарная, минимальная единица измерения информации. В самом деле, трудно представить себе количество информации меньшее, чем ответ на вопрос "да/нет". Чувствуя единство и неделимость бита, многие из нас никогда не думали о том, что количество информации может измеряться дробным числом бит.
Чтобы запомнить целое число от 0 до 1, необходим 1 бит памяти, это всем известно.
Для числа от 0 до 3 нужно 2 бита, здесь тоже ни у кого вопросов нет.
А сколько нужно бит чтобы запомнить число между 0 и 2?
Одного бита мало. Двух достаточно. На этом многие и успокаиваются, считая, что правильный ответ - 2.
На самом деле для хранения такого числа требуется дробное число бит, между 1 и 2. Но не полтора, а примерно 1.585.
Как такое может быть?
Представим себе, что нам надо запомнить много чисел между 0 и 2. Например, 29 штук. Если записывать каждое такое число в двоичной системе по отдельности, используя по 2 бита на число, то потребуется 2*29=58 бит.
Но можно применить более рациональный подход. Числа 0,1,2 образуют троичную систему счисления. Число из 29 цифр в троичной системе счисления может принимать значения от 0 до 3^29-1. Переведем такое число в двоичную систему счисления - для этого нам потребуется log2(3^29) цифр. log2(3^29) = 45.96, округляем в большую сторону, получается 46 бит. Именно столько бит нужно, чтобы записать любое целое число от 0 до 3^29-1, следовательно, 46 бит памяти достаточно чтобы запомнить 29 чисел от 0 до 2 каждое.
Посчитаем, сколько бит в среднем ушло на каждое запомненное число. Для этого разделим требуемое количество бит (46) на число хранимых чисел (29) = 1.5862. Получилось примерно так, как я и говорил вначале - для хранения каждой цифры от 0 до 2 требуется дробное число бит!
Так получается потому, что биты - это логарифмическая единица измерения информации. Натуральная единица измерения информации - это число значений, которые могут принимать хранимые символы. Количество информации, выраженное в битах - это логарифм по основанию 2 от количества информации в натуральных единицах.
вверх^
к полной версии
понравилось!
в evernote