Читаем Это база: Зачем нужна математика в повседневной жизни полностью

Например, в качестве словарных символов можно использовать буквы алфавита. В английском алфавите их 26, так что каждой из них можно было бы присвоить 5-битную строку, скажем, A = 00001, B = 00010 и т. д. Пять бит нужны потому, что из четырех бит можно составить только 16 строк. Но использовать 5-битные строки было бы неэффективно, потому что на буквы, которые встречаются редко, такие как Z, уходит ровно столько же битов, сколько на распространенные буквы, такие как E. Лучше было бы присвоить E короткую строку, такую как 0 или 1, и постепенно удлинять строки по мере того, как буквы становятся менее вероятными. Однако, поскольку в этом случае кодовые строки получаются разными по длине, потребуется дополнительная информация, которая сообщит реципиенту, где следует разбить строку на отдельные буквы. В принципе, это можно сделать при помощи префикса перед кодовой строкой, но у нас сам код должен быть, как говорят математики, беспрефиксным: кодовая строка не должна начинаться с другой, более короткой кодовой строки. Редко используемые буквы, такие как Z, при этом требуют намного больше битов, но, поскольку они редкие, более короткие строки для E с лихвой компенсируют это. Общая длина типичного сообщения оказывается короче.

В коде Хаффмана это достигается формированием «дерева» – своеобразного графа, не имеющего замкнутых петель и очень распространенного в информатике, потому что такой граф представляет целую стратегию решений типа да/нет, где каждое решение зависит от предыдущего. Листьями дерева являются символы A, B, C, …, и из каждого листа выходит по две ветви, соответствующие двум битам 0 и 1. Каждый лист обозначен числом, которое называют его весом и которое показывает, как часто встречается соответствующий символ. Дерево строится шаг за шагом путем слияния двух наименее частых листьев в новый «материнский» лист, тогда как первые два листа становятся листьями-«дочками». Материнскому листу присваивается вес, равный сумме весов двух дочерних листьев. Этот процесс продолжается до тех пор, пока все символы не сольются. Тогда кодовая строка для символа считывается с пути, который ведет по дереву к этому символу.


Построение кода Хаффмана


Например, на рисунке слева вверху показаны пять символов A, B, C, D, E и числа 18, 9, 7, 4, 3, указывающие на частоту их встречаемости. Самые редко встречающиеся символы здесь D и E. На втором этапе, вверху по центру, их смешивают с образованием материнского листа (ненумерованного) с весом 4 + 3 = 7, а символы D и E становятся дочерними. Две ведущие к ним ветви получают обозначения 0 и 1. Этот процесс повторяется несколько раз, пока все символы не сливаются воедино (внизу слева). Теперь мы считываем кодовые строки, следуя по путям вниз по дереву. К A ведет одна-единственная ветвь, обозначенная как 0. К B ведет путь 100, к C – путь 101, к D – путь 110 и к E – путь 111. Обратите внимание, что A, самый часто встречающийся символ, получает короткий путь, а менее распространенные символы – более длинные пути. Если бы вместо этого мы использовали код с фиксированной длиной строки, нам потребовалось бы по крайней мере три бита, чтобы закодировать пять символов, потому что двухбитных строк всего четыре. Здесь же в самых длинных строках по три бита, но в самой часто встречающейся – всего один, так что в среднем этот код более эффективен. Эта процедура гарантирует, что наш код беспрефиксный, поскольку любой путь на дереве ведет к какому-нибудь символу и на нем останавливается. Он не может продолжаться до другого символа. Более того, начав с наименее распространенных символов, мы гарантируем, что к самым распространенным символам будут вести самые короткие пути. Это отличная идея, легкая в программировании и очень простая концептуально, стоит один раз в ней разобраться.

Когда ваша камера создает файл JPEG, ее электроника производит все расчеты на лету, как только вы нажимаете на спуск. Процесс сжатия проходит не без потерь, но большинство из нас никогда этого не заметит. В любом случае экраны компьютеров и принтеры при распечатке не передают цвета и яркость в точности, за исключением случаев, когда их заранее тщательно калибруют. Непосредственное сравнение оригинального изображения и его сжатой версии делает различия более очевидными, но даже в этом случае только эксперт заметит разницу, если файл был сжат до 10 % от первоначального объема. Обычные смертные замечают разницу, только когда файл уменьшается до примерно 3 % от оригинала. Так что JPEG позволяет записать на карту памяти в 10 раз больше изображений, чем оригинальный формат данных RAW. Описанная выше сложная пятиступенчатая процедура, выполняемая в мгновение ока за кулисами, – это и есть магия, в которой задействованы пять областей математики.

* * *

Перейти на страницу:

Похожие книги

100 способов уложить ребенка спать
100 способов уложить ребенка спать

Благодаря этой книге французские мамы и папы блестяще справляются с проблемой, которая волнует родителей во всем мире, – как без труда уложить ребенка 0–4 лет спать. В книге содержатся 100 простых и действенных советов, как раз и навсегда забыть о вечерних капризах, нежелании засыпать, ночных побудках, неспокойном сне, детских кошмарах и многом другом. Всемирно известный психолог, одна из основоположников французской системы воспитания Анн Бакюс считает, что проблемы гораздо проще предотвратить, чем сражаться с ними потом. Достаточно лишь с младенчества прививать малышу нужные привычки и внимательно относиться к тому, как по мере роста меняется характер его сна.

Анн Бакюс

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Детская психология / Образование и наука
Люди на Луне
Люди на Луне

На фоне технологий XXI века полет человека на Луну в середине прошлого столетия нашим современникам нередко кажется неправдоподобным и вызывает множество вопросов. На главные из них – о лунных подделках, о техническом оснащении полетов, о состоянии астронавтов – ответы в этой книге. Автором движет не стремление убедить нас в том, что программа Apollo – свершившийся факт, а огромное желание поделиться тщательно проверенными новыми фактами, неизвестными изображениями и интересными деталями о полетах человека на Луну. Разнообразие и увлекательность информации в книге не оставит равнодушным ни одного читателя. Был ли туалет на космическом корабле? Как связаны влажные салфетки и космическая радиация? На сколько метров можно подпрыгнуть на Луне? Почему в наши дни люди не летают на Луну? Что входит в новую программу Artemis и почему она важна для президентских выборов в США? Какие технологии и знания полувековой давности помогут человеку вернуться на Луну? Если вы готовы к этой невероятной лунной экспедиции, тогда: «Пять, четыре, три, два, один… Пуск!»

Виталий Егоров (Zelenyikot) , Виталий Юрьевич Егоров

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / История / Научно-популярная литература / Учебная и научная литература / Образование и наука
Эволюция человека. Книга III. Кости, гены и культура
Эволюция человека. Книга III. Кости, гены и культура

В третьем томе знаменитой "Эволюции человека" рассказывается о новых открытиях, сделанных археологами, палеоантропологами, этологами и генетиками за последние десять лет, а также о новых теориях, благодаря которым наше понимание собственного происхождения становится полнее и глубже. В свете новых данных на некоторые прежние выводы можно взглянуть под другим углом, а порой и предложить новые интерпретации. Так, для объяснения удивительно быстрого увеличения объема мозга в эволюции рода Homo была предложена новая многообещающая идея – теория "культурного драйва", или сопряженной эволюции мозга, социального обучения и культуры.

Александр Владимирович Марков , Елена Борисовна Наймарк

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература
От болезни тела – к исцелению души. Почему мы болеем?
От болезни тела – к исцелению души. Почему мы болеем?

Все болезни имеют глубокий смысл. Они передают ценнейшие послания психики. Психолог Торвальд Детлефсен и врач Рудигер Дальке помогают нам понять, о чем свидетельствуют инфекционные заболевания, головные боли, несчастные случаи, сердечные приступы и желудочные колики, а также рак и СПИД. Если вы осознаете картину собственной болезни, то сможете найти новый прямой путь к самому себе. Болезнь не является неприятной помехой на этом пути, ибо она сама – путь. Чем сознательнее мы к ней относимся, тем лучше она выполняет свои задачи. Наша цель – не борьба с болезнью, а ее использование для исцеления души.

Рудигер Дальке , Торвальд Детлефсен

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Эзотерика / Здоровье и красота / Дом и досуг