Связь между информацией и случайностью очень тонка и предполагает, что создание цепочки в битах — процесс с непрогнозируемым результатом. Представим, что цепочка битов выбирается на основе броска монеты. В этом случае мы знаем, что следующий бит будет либо нулем (орел), либо единицей (решка), но не более того: монета абсолютно непредсказуема. В этом случае случайно возникшая цепочка битов содержит количество информации, равное ее длине.
Но предположим, что монета, которую мы используем, фальшивая, и на вероятность выпадения орла приходится 70 %. В этом случае каждый бит будет содержать немного меньше информации, поскольку мы знаем, что более вероятно выпадение орла.
Крайний случай — это цепочка, состоящая из единиц. Если мы знаем, что при броске всегда выпадает решка, то, подбрасывая монету, не получаем вообще никакой информации. Итак, когда цепочка битов полностью предсказуема, содержание информации в ней нулевое. Шеннон основывался на этой идее в сочетании с формулой энтропии Больцмана для создания собственного определения энтропии, применимого к информации.
Поскольку вероятность получения результата играет роль, подобную числу микросостояний в теории Больцмана, Шеннон определил энтропию как сумму логарифмов вероятности получения этого результата для каждого бита. В математической нотации его формула выглядит следующим образом:
Н = — P1log2P1 — P2log2P2 — P3log2P3 — … — Pnlog2Pn,
где H — энтропия, Р — вероятность получения некоторого значения для каждого символа.
Символы log2 означают, что логарифм — это действие, обратное возведению в степень двух. Например, логарифм восьми по основанию два равен трем, поскольку три — это степень, в которую надо возвести два, чтобы получить восемь.
Формулу можно трактовать следующим образом: если некоторое значение бита очень вероятно, его информационное содержание низко; если значение маловероятно, бит несет гораздо больше информации. Нам нужно найти сумму всех возможных значений и умножить на их вероятность, поскольку наиболее вероятные значения встречаются чаще.
Формулу Шеннона можно использовать для определения информационной насыщенности сообщения, статистически исследовав появление в нем различных символов.
Возьмем предыдущий пример: «Сегодня я опоздаю на ужин». Порядок букв может показаться стихийным, и только зная, что фраза написана на русском языке, мы можем сделать какие-либо выводы о вероятности каждой буквы. Например, мы знаем, что в русском языке вероятность встретить букву ы после ж, ш или я после ч, щ крайне низка. Мы также знаем, что в начале слова никогда не встречаются буквы ъ и ь. Вся эта информация может использоваться для сжатия сообщения. Но даже если бы мы ничего не знали о языке как таковом, статистический анализ любого текста позволяет, основываясь на частоте каждой буквы, довольно сильно сжать его. Этот метод используется в программах для сжатия архивов: вначале они ищут в сообщении закономерности, а затем используют их для уплотнения информации.
Энтропия Шеннона измеряется в битах. Если вычислить ее содержание в букве такого текста, как эта книга, окажется, что она равна примерно одному биту, что намного меньше восьми битов, необходимых для передачи этой буквы.
* * *
ШЕННОН И ФОН НЕЙМАН
Определение энтропии Шеннона, кажется, гораздо больше связано с информацией, чем с энтропией, так что выбор названия может показаться удивительным. Согласно некоторым его биографам, идея принадлежала великому математику Джону фон Нейману (1903–1957), который во время одного из своих визитов сказал Шеннону следующее: «Тебе следует назвать ее энтропией по двум причинам. Во-первых, твоя функция неопределенности уже используется в статистической механике под таким названием, так что у нее уже есть имя. А во-торых, и это более важно, никто на самом деле не понимает, что такое энтропия, поэтому в спорах у тебя всегда будет преимущество».
* * *
Поскольку число также может быть выражено как цепочка символов, в нем тоже имеется некоторое количество информации и, следовательно, некоторая энтропия Шеннона. Самый простой способ вычислить энтропию числа — это рассмотреть его выражение в двоичной системе. При этом вместо привычных арабских цифр используются единицы и нули. Когда мы записываем число арабскими цифрами, то на самом деле используем степени числа 10: