К ЧИТАТЕЛЮ
Л. Мерсье
Б. Дизраэли
5
Информация и информатика
6
Информация и человек
7
ИНФОРМАЦИЯ И ЧЕЛОВЕК
КОМПЬЮТЕР — УНИВЕРСАЛЬНЫЙ ИНСТРУМЕНТ
ДЛЯ ОБРАБОТКИ ИНФОРМАЦИИ
10
Информация и человек
11
Информация и информатика
12
Информация и человек
АТОМЫ ИНФОРМАЦИИ
Информация, каким бы способом она не была обретена, рую не раз приходилось ре-
всегда фиксирует отличия и изменения. «Поздно» имеет шать человечеству. Без таких
смысл только потому, что существует «рано», весна насту- систем, представляющих не-
пает после зимы. Мы мыслим противопоставлениями, и прерывное прерывным, невоз-
это фундаментальное свойство человеческого мышления. можно представить современ-
Ведь в природе не существует никакого конкретного мо- ную жизнь, ведь это нотная
мента, когда весна сменяет зиму. Это человек, не пассив- грамота, денежная система,
но воспринимая мир, а извлекая из него информацию, де- система счёта времени, гео-
лит непрерывную реальность на элементы с помощью графические координаты,
подразумеваемых порогов, границ, критических точек, до шкала температур и многое
которых было что-то одно, а после стало что-то другое. другое.
Любое «да» имеет смысл лишь в сопоставлении с «нет», Впервые фундаменталь-
любое «больше» — в сопоставлении с «меньше», «война» — ное значение противопостав-
с «миром», «дворцы» — с «хижинами»… ления выяснил основатель Фердинанд де Соссюр.
Итак, каждый раз, создавая информацию или переда- современной лингвистики
вая её, мы делаем цельное дискретным, вычленяем эле- Фердинанд де Соссюр (1857—1913), изучавший язык как
менты. В некоторых случаях дискретность очевидна: вклю- знаковую систему. Именно он показал, что ни один знак не
чена сирена — не включена, подал руку — не подал. Такие имет смысла сам по себе, он существует исключительно в
оппозиции, устроенные по принципу «или — или», назы- оппозиции (противопоставлении) с другими знаками. Невоз-
ваются бинарными. В этих случаях одно состояние есте- можен светофор с одним постоянно горящим фонарём,
ственным, очевидным образом отделено от другого, раз- невозможен алфавит из одной буквы. Даже когда кажется,
личие между ними бросается в глаза (в случае с сиреной — что знак всего один, в действительности это не так.
в уши). С наступлением весны всё гораздо сложнее. В ми- Например, сирена — звуковой знак, означающий «внима-
ре много процессов, не содержащих явных порогов. Эти ние» или «опасность». Но если подумать, становится по-
пороги устанавливаем мы сами, вводя дискретность сво- нятно, что и здесь есть противопоставление: наличие звука
ей волей. «Совсем зарос, — говорит мама, — стричься по- — отсутствие звука. Молчание сирены тоже значимо, оно
ра». — «Не совсем, в глаза же не лезут, — отвечает сын. — выражает смысл «всё как обычно», «ничего особенного не
Ещё так похожу». Здесь разные ситуации разграничива- происходит». Знаки, у которых внешняя форма состоит в
ются по количеству или степени признака. Допустим, сте- отсутствии объекта, называются нулевыми. Примеры
пень «лохматости»: лысый — нулевая, коротко стрижен- нулевого знака — пробел (пауза) между словами, негорящие
ный — первая, волосы немного отросли — вторая, лезут в лампочки на приборе, непротянутая в знак неуважения рука.
глаза — третья, заплетаются в косичку — четвёртая и т. д.
Так организуется градуальная оппозиция. Способ деле-
ния непрерывности бывает различным. Понятно, что, ес-
ли выделять градуальные оппозиции произвольно, это не
даст выполнить важнейшее условие передачи информа-
ции — точность. Представим себе, что не существует еди-
ного календаря, а каждый решает сам, ориентируясь на
собственные ощущения, когда, по его мнению, пришла
весна, а когда кончится сегодня и наступит завтра. Созда-
ние общих для всех и потому обеспечивающих точность
передачи информации знаковых систем — задача, кото-
13
Информация и информатика
14
Информация и человек
ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ
Для хранения, преобразования и передачи информа- Появились фотостудии, где уже предлагают сде-
ции важнее её различные представления и методы их лать голографическую, псевдотрёхмерную фотогра-
использования, чем строгое определение. фию родных, домашних питомцев.
Информация обязательно должна быть зашифро- 2. Акустическая информация (речь, звук). Практиче-
вана в виде знаков, символов, кодов. Кодирование ски все животные в той или иной степени способны
может производиться много раз и с различными це- воспринимать звук: они предупреждают друг друга об
лями: обеспечить передачу по тем или иным каналам опасности, устанавливают свой статус в сообществе, воз-
связи, уменьшить нагрузку на какой-либо из них, со- можно, даже согласовывают действия при совместной
хранить конфиденциальность информации и т. д. Пе- охоте. Но только человек с помощью речи выражает
ревод на другой язык — то же кодирование, осуще- чувства, мысли, до некоторой степени заменяет визуаль-
ствляемое для того, чтобы информацию мог ное восприятие информации. Если рассказчик красноре-
воспринять человек, незнакомый с языком, т. е. с ис- чиво, ярко, образно опишет что-то, то слушатель вооб-
ходным представлением информации. разит изображаемый предмет, словно он его видит. На
В последнее время широкое распространение по- компьютере речь бывает представлена как любой дру-
лучила цифровая телефония. Любой человек может гой звук или музыка либо разбита на отдельные звуки —
купить карточку с персональным кодом и позвонить фонемы или даже целые слова.
в другой город или даже в другую страну. Во время 3. Символьная информация (текст, письменность).
разговора происходят следующие информационные С помощью письменности человек обрёл нечто по-
процессы. Сначала информация шифруется в мозгу добное бессмертию: мысли, однажды занесённые на
человека последовательно в виде образов, мыслей, папирусные свитки, пергамен, бумагу, на различные
речи. С помощью телефонного устройства колебания цифровые носители, при условии правильного хране-
(речь) преобразуются в электрические импульсы. На ния будут существовать почти вечно.
компьютерных станциях-коммутаторах аналоговые Любая подобная классификация будет неполной —
электрические импульсы трансформируются в циф- всегда есть такое представление информации, кото-
ровой код, который обрабатывается при помощи спе- рое не подходит под составленную схему. К чему от-
циальных алгоритмов, чтобы ускорить его передачу. нести биологическую информацию в ДНК? Или на-
Потом код передаётся по каналам связи, ещё раз пре- пряжения в земной коре, свидетельствующие о
терпевая кодирование, на этот раз для того, чтобы глубинных тектонических процессах? Или излучение
обеспечить его корректную доставку получателю. далёких звёзд, по которому можно определить их вид,
На принимающей станции происходит обратный про- состав, процессы, идущие в них?
цесс (раскодирование): цифровой код преобразуется Поэтому классифицировать информацию необхо-
в аналоговый электрический импульс, затем в теле- димо в зависимости от использования. То ли это ин-
фоне — в звуковые колебания, которые наконец вос- формация, воспринимаемая человеком, то ли инфор-
принимаются вторым собеседником. мация, обрабатываемая компьютером, то ли
В такой длинной цепочке изменялось представле- многовековые знания человечества — везде необхо-
ние информации, но целевое содержание (передава- дима своя целевая классификация.
емая информация) осталось неизменным.
В мире существуют многообразные виды инфор-
мации. Предложим классификацию, основанную на
восприятии человека.
1. Визуальная (зрительная) информация. Такую ин-
формацию, конечно, понимает не только человек, но
и животные. В отличие от животных, в основном усва-
ивающих всего лишь отражение внешнего мира, чело-
век смог записать, сохранить визуальную информацию
сначала в виде наскальных рисунков, потом иконопи-
си, живописи, фотографии, видео. Прогресс идёт впе-
рёд, XXI век — это время создания и широкого внедре-
ния технологии записи и воспроизведения не плоского,
а уже настоящего трёхмерного изображения, на кото-
рое можно посмотреть сбоку, сверху, его можно обой-
ти и увидеть, что происходит с другой стороны.
15
Информация и информатика
16
Информация и человек
17
Информация и информатика
ТЕОРИЯ ИНФОРМАЦИИ
18
Информация и человек
19
Информация и информатика
Распределению вероятностей
P = {p1, ... , pm } сопоставляется число
H(P) = p1log2(1/p1) + ... + pmlog2(1/pm),
называемое энтропией источника и
служащее мерой неопределённости.
Чаще всего в этой формуле исполь-
зуются логарифмы по основанию 2,
и тогда количество информации,
необходимой для восстановления
значения источника (т. е. устране-
ния неопределённости), измеряется
в битах. Один бит соответствует ко-
личеству информации, получаемой
из ответа на вопрос с двумя равнове-
роятными ответами.
Первая теорема Шеннона — теоре-
ма кодирования для канала без шума
утверждает, что для любого кодирова-
ния (с однозначным декодированием)
его средняя длина E(L) не меньше энт-
ропии H(P), а с другой стороны, суще-
ствуют кодирования со средней дли-
ной, сколь угодно близкой к H(P). Тем
самым теорема означает, что сообще-
ния от источника могут быть закоди-
рованы в двоичной форме со средней
длиной представления, незначительно
большей, чем энтропия источника, и
Как сравнивать различные коди- что «экономнее» энтропии никакой ис-
рования (однозначные) по эффектив- точник сообщений представить нель-
ности, что выбрать в качестве меры зя. Величину r(L) = E(L) – H(P) называ-
эффективности? ют избыточностью кодирования L, тем
Шеннон предложил рассматри- самым 0 < (L) < 1 для однобуквенных
вать среднюю длину кодирования кодировок.
(среднюю длину кодовых слов)
E(L) = p1 L1 + ... + pm Lm, где Li — длина
i-го слова, и считать кодирование оп-
тимальным с минимально возмож-
ной средней длиной. Ясно, что не-
важно, как называются буквы А, Б...
или X, Y..., а важно только, сколько
букв и вероятности Pi их появления,
т. е. всё определяется распределени-
ем вероятностей P = {p1, ... , pm }. Мно-
жество букв (алфавит) с заданным
распределением вероятностей назы-
вают источником сообщений.
Для алфавита, состоящего из че-
тырёх букв (A, B, C, D), и распределе-
ния вероятностей: P(A) = 1/2, P(B) =
= 1/4, P(C) = P(D) = 1/8. Естественно,
что P(A) + P(B) + P(C) + P(D) = 1/2 +
1/4 + 1/8 + 1/8=1. Средняя длина кода,
описанного в предыдущем примере,
E(L) = p1 L1 + ... + pm Lm равна 7/4, что
меньше 2 бит, необходимых при рав-
номерном кодировании.
20
Информация и человек
21
Информация и информатика
КОДЫ ХЭММИНГА
История кодов, исправляющих ошибки, началась чуть двух позициях. Так как в каждом шаре 8 точек (7 плюс
более полувека назад, когда молодой американский центр), а всего слов в пространстве 128, то можно
учёный Ричард Уэсли Хэмминг решал задачи на одной разместить не более чем 128/8=16 непересекающих-
из первых вычислительных машин. Компьютеры того ся шаров, т. е. код Хэмминга оптимален.
времени были ненадёжны и часто ошибались. Приме- Код Хэмминга задаётся как множество решений
няемый уже тогда простой метод обнаружения ошибок однородной (т. е. правая часть равна 0) системы из
(проверка на чётность, каждому машинному слову из 0 четырёх линейных уравнений с семью неизвестными
и 1 приписывается дополнительный избыточный бит, x1 , ... , x7, у которой столбцы матрицы коэффициен-
равный 0, если в слове чётное число единиц, и 1 — ес- тов пробегают все 7 ненулевых столбцов из 0 и 1, а ра-
ли нечётное) позволял обслуживающему персоналу пе- венство нулю понимается как равенство по модулю два
резапустить вычислительный процесс. Но по выходным (т. е. результат арифметических действий, как с обыч-
дням, когда у Хэмминга было основное машинное вре- ными целыми числами, должен быть чётным числом).
мя, компьютер никто не обслуживал, и в результате мно- Пусть x = (x1 , ... , x7) — кодовое слово, а y = (y1 , ... ,
го вычислений проводилось напрасно. Тогда ему приш- y7) — принятое (из канала) слово, отличающееся от x не
ла мысль, что если коды могут обнаруживать ошибки более чем в одной позиции. Декодирование, т. е. вос-
автоматически, то должны быть и коды, способные ис- становление x по y, происходит следующим образом.
правлять ошибки. Сначала вычисляется синдром s(y) = (s1 , ... , s4) слова y,
Так появился теперь хорошо известный [7,4]-код как значения правых частей четырёх уравнений, в кото-
Хэмминга, исправляющий одиночные ошибки. Этот рые подставлены yi (вместо xi). Затем ищется такая по-
код позволяет представить (закодировать) 4 бит ин- зиция i, где соответствующий столбец коэффициентов
формации с помощью 7 бит таким образом, что лю- уравнений совпадает с синдромом и исправляется (т. е.
бая одиночная ошибка в 7-бит-
ном представлении будет
исправлена, в результате чего
удастся правильно восстано-
вить исходные 4 бит.
Так как 4 бит информации
представляют 24 =16 различ-
ных сообщений, то код Хэм-
минга состоит из 16 так назы-
ваемых кодовых слов длины
7. Свойство исправления оди-
ночных ошибок означает, что
искажение любого бита в
каком-то кодовом слове и лю-
бого (или ни одного) бита в
другом не может привести к
одному и тому же 7-битному
слову, имеется множество
(«пространство») из 27 = 128
7-битных слов, и в нём под-
множество (код) из 16 слов.
Вокруг каждого кодового сло-
ва есть «облако» («шар») из
7 слов, полученных в резуль-
тате одиночных ошибок, «об-
лака» («шары») не должны пе-
ресекаться. Последнее условие
исправления одиночных оши-
бок равносильно тому, что лю-
бые два кодовых слова долж-
ны отличаться более чем в Устранение одиночных ошибок (диаграммы Венна).
22
Информация и человек
23
Информация и информатика
24
Информация и человек
25
КОДИРОВАНИЕ ИНФОРМАЦИИ
ОТ РИСУНКА К БУКВЕ
Первые начертания, смысл которых ности, с магией и со счётом. Забор —
нам понятен, — изображения живот- один из первых знаков собственно-
ных на стенах пещер, сделанные на- сти, корона или скипетр — знаки вла-
шими далёкими предками десятки сти и положения в обществе, хрус-
тысяч лет назад. Однако между ними тальный шар — символ ясновидения,
и письменностью — огромная дис- а камешки давно превратились в ко-
танция. стяшки счётов.
Для передачи информации изна- Вероятно, именно со счётом были
чально использовались так называе- связаны знаки, переходные от пред-
мые предметные знаки: ракушки, метов к изображению. Это зарубки на
камешки, кости и перья животных, палке, которыми обозначался долг.
узелки и т. д. Такой знак может, на- Когда нанесённые на какую-либо
пример, указывать на наличие цело- поверхность значки используются
го класса аналогичных предметов уже не только для счёта, но и для
(именно на этом принципе строит- передачи развёрнутых сообщений,
ся заполнение витрин магазинов, ког- возникает идеографическое, т. е.
да выставляются только некоторые картинно-изобразительное, письмо,
предметы из ассортимента). В дру- нечто среднее между рисунком и
гом случае предметный знак высту- знаковым письмом. Картинка в целом
пает как символ понятия, предмета могла изображать некую ситуацию,
или целой ситуации. Так, в одном из как в наскальной живописи, но в ней
африканских племён в качестве уже выделялись элементы, не столько
знака оповещения о казни осуждён- изображающие, сколько обознача-
ному посылалось яйцо попугая. ющие отдельные элементы ситуации.
Наиболее типичные функции та- Закрепление отдельных знаков за
ких знаков связаны с обозначением определёнными понятиями, возмож-
принадлежности, статуса, собствен- ность их использования для описа-
26
Кодирование информации
27
Информация и информатика
28
Кодирование информации
29
Информация и информатика
30
Кодирование информации
СИСТЕМЫ СЧИСЛЕНИЯ
ий
ск
УРАРТУ
ое м о
Между реками Тигр и Евфрат, в могу-
чем государстве Вавилонии, высоко- Хаттуса
ХЕТТЫ
ре
го развития достигли счёт и системы ХУРРИТЫ
счисления (см. раздел «Старинные си-
стемы записи чисел» в томе «Матема-
тика» «Энциклопедии для детей»). Дур-Шаррукин
Вавилонские числа являются комби- ипр Ниневия
о .К
нацией не двух, а трёх клинописных
ое
Ашшур
знаков: единицы — , десятки — Ср н Мари ПАРФИЯ
еди зем Экбатана
е Библ АССИРИЯ
и сотни — . м ор Сидон
С помощью этих знаков можно за- Тир АККАД ПЕРСИЯ
писать любое число, используя прин- Вавилон
Сузы
цип сложения или умножения: м Урук
ли Пасаргады
уса
ер Ур Персеполь
— 10 .100 = 1000, И
Пер
— 10 + 1 = 11.
си
ск
д
ий
Кр
ив
ас
же позиционная шестидесятеричная
м оре
— 1 . 60 + 10 + 2 = 72.
31
Информация и информатика
1 2 3 4 5 6 7 8 9 10
20 30 40 50 60 70 80
Все остальные числа записывались
из этих знаков при помощи операции
сложения. Вначале писались числа
высшего порядка, а затем низшего:
=100+100+10+1+1+1+1=214.
32
Кодирование информации
Γ (Γεντε) — пять,
∆ (∆εκα) — десять,
Η (Ηκατον) — сто,
Χ (Χιλιασ) — тысяча,
Μ (Μυριασ) — десять тысяч,
Ι, ΙΙ, ΙΙΙ, ΙΙΙΙ — соответственно 1, 2,
3, 4,
∆∆∆ΙΙΙΙ — 10 + 10 + 10 + 4 = 34.
33
Информация и информатика
ДВОИЧНОЕ КОДИРОВАНИЕ
34
Кодирование информации
413 1
206 0
103 1
51 1
25 1
12 0
6 0
3 1
1 1
35
Информация и информатика
A — 10,
B — 11,
C — 12,
D — 13,
E — 14,
F — 15.
10016 = 25610,
Перевод из шестнадцатеричной
системы в двоичную и обратно ана-
логичен действиям с восьмеричной
системой. Надо опять запомнить таб-
лицу перевода, где вместо триад сто-
ят тетрады (четвёрки):
36
Кодирование информации
37
Информация и информатика
КОДИРОВАНИЕ ИЗОБРАЖЕНИЙ
38
Кодирование информации
39
Информация и информатика
цвет, то при неизменной общей ярко- щена прямым светом, а другая — рас-
сти насыщенность спектрального цве- сеянным от того же источника, то
Часто используется та уменьшится. Интересно, что в при- цвета воспринимаются человеком по-
обозначение HSB роде мало что (или кто) отличается разному, несмотря на то что цвето-
(brightness) вместо насыщенностью цвета (возможно, вой тон и насыщенность этих частей
HSV. лишь тропическая флора и фауна). Ис- одинаковы.
кусственные краски, например изоб- Кодировка с помощью цветового
ражение на мониторе, обладают бо- тона, насыщенности и яркости поз-
лее высокой насыщенностью и воляет легко получить из цветной
поэтому так радуют человеческий глаз. картинки монохромную, или, как не
Яркость (светлота) определяется совсем верно говорят, чёрно-белую,
уровнем действующего на глаз излу- не меняя яркости объектов изобра-
чения. Если одна часть объекта осве- жения.
40
Кодирование информации
41
Информация и информатика
42
Кодирование информации
43
Информация и информатика
КОДИРОВАНИЕ ФИЛЬМОВ
44
Кодирование информации
45
Информация и информатика
Активы Пассивы
Экономические ре- Касса 50 Уставный капитал 85
сурсы в бухгалтерии Основные средства 01 Задолженность поставщикам 60
называют активами, Расчётный счёт 51 Задолженность по оплате труда 70
а привлечённый капи- Готовая продукция 40 Резервный капитал 80
тал — пассивами.
Поэтому основное В России сюда же для простоты Великий немецкий поэт Иоганн
уравнение можно за- включают и собственный капитал Вольфганг Гёте с иронией относился
писать так: предприятия, куда входят, например, к бухгалтерам, называя двойную бух-
Активы = Пассивы + и уставные взносы владельцев пред- галтерию «одним из самых замеча-
+ Капитал. приятия. Важнейшим понятием бух- тельных изобретений человеческого
галтерии является баланс. Это двусто- разума», хотя это высказывание и не
ронняя таблица, левая часть которой лишено здравого смысла.
представляет собой актив, состав и раз- Система двойной записи основы-
мещение хозяйственных средств пред- вается на принципе двойственности.
приятия, а правая часть — пассив (или Все экономические явления имеют два
пассив плюс капитал), где группиру- аспекта — увеличение и уменьшение,
ются все поступления. Сумма активов компенсирующие друг друга, как буд-
баланса должна совпадать с суммой то подчиняясь «закону сохранения».
пассивов, так как актив и пассив — это В этой системе факт хозяйствен-
фактически две точки зрения на одни ной жизни должен быть зафиксиро-
и те же средства. ван как минимум дважды: по дебету од-
Информация, необходимая для ного счёта и кредиту другого — так,
управления и учёта на предприятии, чтобы общая сумма по дебету уравно-
должна накапливаться и всегда быть вешивала общую сумму по кредиту.
под рукой у руководителя. Система Запись в таблице, похожей на бук-
хранения информации при бухгал- ву «T», включает название счёта, дебет
терском учёте состоит из счетов. Счёт (левая часть) и кредит (правая часть).
создают на каждый вид актива, пас- Пусть в кассу поступают деньги (ле-
сива или капитала, включая доходы и вая часть) и из неё производятся вы-
расходы. Соответственно счета ис- платы (правая часть):
пользуются для учёта активов или пас-
сивов. Каждый счёт имеет свой шифр, Касса
который можно писать вместо назва- 10 000 5000
ния счёта. В небольшой фирме доста- 3000 1200
точно иметь в плане несколько десят- 1000
ков счетов, в крупной корпорации их 14 000 6200
тысячи.
Когда бухгалтерский учёт ведётся Сальдо 7800
вручную, на каждый счёт выделяют
отдельную страницу или карточку. Активные счета имеют дебетовое
сальдо, которое показывает остаток
средств, а пассивные счета — кре-
дитовое сальдо, учитывающее все
источники поступлений. По кредиту
пассивных счетов отражается увели-
чение, по дебету — уменьшение этих
источников.
Каждая хозяйственная операция
показана в дебете одного и в кредите
другого счёта в одинаковой сумме
(проводка). Это и называется спосо-
бом двойной записи. Между счетами
И. Г. Тишбейн. возникает взаимосвязь: один счёт по
Иоганн Вольфганг
Гёте в римском дебету связан с другим счётом по кре-
предместье. 1787 г. диту. Например, при начислении из-
46
Кодирование информации
47
Информация и информатика
где тип — это своего рода шифр про- проводки, отчётная информация за
водки, по которому из других таблиц определённый период времени и
Система двойной за- можно ссылаться на таблицу типов многое другое. Но даже по предло-
писи возникла в эпо- проводок, название — полное назва- женной модели легко подсчитать
ху Ренессанса. Ещё в ние проводки, шифр дебета и шифр итоговый оборот средств по любо-
1494 г. францискан- кредита — шифры счетов, участву- му счёту за любой период времени.
ский монах Лука Па- ющих в проводке. Независимо от количества проводок
чоли, друг Леонардо Про каждую проводку важно знать: компьютер выполнит эту задачу без
да Винчи, дал первое её тип, когда произошла и какое ко- ошибок!
описание двойной за- личество средств было переведено. Программа бухгалтерского учё-
писи. Если 31 декабря 2002 г. проводкой но- та способна облегчить и повседнев-
мер 23450 начислили износ в разме- ный труд работников бухгалтерии.
ре 10 тыс. рублей, то запись в табли- Например, при выдаче денег из кассы
це проводок выглядит так: помимо бухгалтерской проводки
необходимо заполнить расходный
Номер Тип Дата Количество ордер. Данную работу также выпол-
няет компьютер: бухгалтер указы-
23450 3 31.12.2002 10 000 вает сумму выдачи, а компьютер де-
лает проводку и печатает ордер.
Разумеется, объём хранимой в Это не только экономит время, но
бухгалтерии информации куда боль- и гарантирует, что сумма, указанная
ше. Существуют первичные докумен- в ордере, совпадает с суммой про-
ты, на основании которых сделаны водки.
48
Кодирование информации
ски все они основаны на одной из Всего на весь текст будет потраче-
двух простых идей. но 500 + 500 . 9 = 5000 бит, что зна-
Первая идея была предложена Дэ- чительно меньше, чем 8000 бит в ис- Идеи Хаффмана ис-
видом Хаффманом в 1952 г. и бази- ходном тексте. пользуют сжатие
ровалась на том, что в обычном тек- Вторая основная идея упаковки CCITT (аббревиатура
сте частоты появления разных состоит в том, что в сообщениях Международного ко-
символов различны. При стандарт- часто встречаются несколько под- митета по телегра-
ном кодировании текста каждый ряд идущих одинаковых байтов, фии и телефонии)
символ кодируется одним байтом. а некоторые последовательности при передаче факсов.
Использование одного байта на байтов повторяются многократно.
один символ упрощает обработку При упаковке графической инфор-
текста. Но перед длительным хране- мации чаще встречается первая си-
нием (или перед передачей по кана- туация, а при упаковке текстов —
лам связи) можно позволить себе бо- вторая, так как в русском языке ред-
лее сложную кодировку текста. При ко встречаются две, а тем более боль-
упаковке по методу Хаффмана час- шее число подряд идущих одинако-
то встречающиеся символы кодиру- вых букв. На рисунке, например,
ются короткими последовательно- голубое небо использует один цвет,
стями битов (короче 8), а более который многократно повторяется
редкие — длинными (может быть, при кодировании этого изображе-
более 8). В результате в среднем по- ния. Да и для хранения графической
лучается менее 8 бит на символ. информации требуется значитель-
Это легко проиллюстрировать. но больше места, поэтому задача её
Пусть в тексте из 1000 байт 50 % про- упаковки наиболее важна. Графиче-
белов. Тогда можно закодировать ская информация вообще очень ред-
текст в виде последовательности дво- ко хранится в компьютере в неупа-
ичных 0 и 1. кованном виде.
Если в тексте встретился пробел, Дэвид Альберт Хаффман.
то в конец последовательности пи-
шется 0, а если встретился непробел, ГРУППОВОЕ
то запишется 1, а за ней добавится
двоичный код этого символа, т. е.
КОДИРОВАНИЕ
1 + 8 бит. Поскольку текст наполови-
ну состоит из пробелов, то на их ко- RLE-кодирование (англ. Run-Length
дировку тратится 500 раз по одному Encoding — «кодирование путём учё-
биту, а на каждый из 500 непробелов та числа повторений») — метод, при-
расходуется по 9 бит. менимый не только к изображениям,
49
Информация и информатика
15 A
LZW-КОДИРОВАНИЕ
Абрахам Лемпель. Другой пример: ФФФААААКУУУУК
потребует уже не двух, а 10 байт: Схема сжатия Лемпеля — Зива — Уэл-
ча (LZW) является одной из самых
3 Ф 4 A 1 К 4 У 1 К распространённых при упаковке изо-
бражений. В 1977 г. Абрахамом Лем-
Таким образом, можно сказать, что пелем и Джекобом Зивом был создан
последовательность одиночных, не- первый алгоритм LZ77. Описанный
повторяющихся байтов при RLE-упа- ими алгоритм работал примерно так.
ковке займёт даже больше места, чем Сжатие происходит за счёт замены
изначально. уже встречавшихся ранее в последо-
Можно предложить следующую вательности одинаковой группы сим-
модификацию метода RLE. волов тройкой значений (триадой):
Пусть первый байт несёт не только указателя на группу, длину совпада-
информацию о числе повторений, но ющей группы и первого отличающе-
и о том, есть ли эти повторения. Если гося символа, идущего за группой.
старший (самый левый) бит равен 1, Максимальная длина фрагмента F
Джекоб Зив. то следующий байт данных надо при определяется равной 10–20 симво-
распаковке повторить столько, сколь- лам. А «скользящее» окно, через ко-
ко записано в оставшихся 7 бит. торое просматривается текст, обо-
Например, байт 100001012 говорит, значалось N.*
что следующий за ним байт нужно по- При очередном шаге самая длин-
вторить 5 раз (так как 1012 = 5). На- ная последовательность в фрагмен-
против, если старший бит первого те «ло ко д» ищется в буфере «ышко
байта равен 0, то просто надо взять весело пошло ко д». При этом най-
несколько следующих байтов данных денная совпадающая группа симво-
без всяких изменений. Сколько имен- лов может перекрывать фрагмент F,
но — опять записано в оставшихся но, естественно, не совпадать с ним.
7 бит. Например, байт 000000112 го- В примере такая группа символов
ворит, что следующие за ним 3 байт найдена — «ло_» (с пробелом в кон-
нужно взять без изменений. це), она и заменится при сжатии на
Например, на последовательность триаду (7, 3, к).
ФФФААААКАЮК потребуется уже не После этого окно сместится на дли-
12 байт, а всего 9: ну группы + 1 (3 + 1 = 4) символов. **
Весьма вероятно, в буфере не бу-
дет найдено даже начало фрагмента,
100000112 Ф 100001002 A 000001002 К А Ю К
т. е. фрагмент начинается с символа,
50
Кодирование информации
АЛГОРИТМ LZW
Метод LZW обычно использует словарь, содержащий 4096 Существуют модификации этого алгоритма, сбрасы-
элементов. Элементы с номерами 0–255 содержат все 256 вающие при переполнении не весь словарь, а только ка-
символов из 8-битной кодировки. Эти элементы словаря кую-то его часть, например первую половину.
всегда постоянны, а остальные элементы с номерами Алгоритм распаковки работает по такому же прин-
256–4095 изначально пусты, но в процессе работы запол- ципу, но несколько сложнее:
няются словами по следующему алгоритму:
алг декодирование LZW
алг кодирование LZW дано в словаре 256 символов
дано в словаре 256 символов надо напечатать раскодированные символы
надо напечатать коды LZW нач лит слово, символ, цел к, к0
нач лит слово, символ | к0:= Прочитать код
| слово:= ”” | вывод Словарь(к0)
| нц | нц
| | символ:= Символ из текста | | к:= Прочитать код
| | если Есть в словаре(слово + символ) | | слово:= Словарь(к0)
| | | то слово:= слово + символ | дописывание | | если Cловарь(к)<>Пусто | Слово есть в
||| символа к слову || словаре?
| | | иначе вывод Код(слово) | код из словаря | | | то вывод Словарь(к)
| | | Добавить к словарю (слово + символ) | | | символ:= Первый символ в Словаре(к)
| | | слово:= символ | | | иначе символ:= слово[1] | первый символ
| | всё | | всё
| кц | | Добавить к словарю (слово + символ)
кон | | к0:= к
| кц
Когда словарь переполняется, алгоритм Уэлча его очи- кон
щает, как бы начиная работу сначала.
51
Информация и информатика
Фрактальное
изображение.
52
Кодирование информации
53
Информация и информатика
54
Кодирование информации
СЖАТИЕ ЗВУКА
55
Информация и информатика
56
Кодирование информации
57
Информация и информатика
Полоса № … 7 8 9 …
Уровень (dB) … 10 60 35 …
58
Кодирование информации
59
НАУКА ИНФОРМАТИКА
ИНФОРМАТИКА
60
Наука информатика
61
Информация и информатика
62
Наука информатика
63
Информация и информатика
64
Наука информатика
65
Информация и информатика
66
Наука информатика
НОРБЕРТ ВИНЕР
67
Информация и информатика
68
Наука информатика
69
Информация и информатика
70
Наука информатика
71
Информация и информатика
72
Наука информатика
73
Информация и информатика
74
Наука информатика
ТРОПА В АКАДЕМГОРОДКЕ
А. П. Ершов
75
Информация и информатика
Фундаментальные исследования
А. П. Ершова в области схем программ
А.П. ЕРШОВ — УЧЁНЫЙ И ЧЕЛОВЕК и теории компиляции оказали замет-
ное влияние на его многочисленных
Вокруг Андрея Петровича Ершова всегда кипела жизнь — его окружа- учеников и последователей.
ли студенты и школьники, аспиранты и молодые исследователи, зару- Книга А. П. Ершова «Программи-
бежные учёные и сибирские журналисты. Андрей Петрович не был ни рующая программа для быстродейст-
администратором по призванию, ни воспитателем по образованию, вующей электронной счётной ма-
но тем не менее к нему постоянно обращались за советами, консуль- шины» — одна из первых в мире
тациями, с просьбами. Приходили и в радости: «Родился сын!», и в пе- монографий по автоматизации про-
чали: «Что делать? Провалился на защите». Среди его аспирантов друж- граммирования.
но и увлечённо работали узбеки и евреи, русские и татары, украинцы За существенный вклад в теорию
и литовцы. У него для каждого находилось нужное слово, правильный смешанных вычислений в 1983 г.
тон. Речь идёт о человеке предельно загруженном, ценящем и умею- А. П. Ершов был удостоен премии име-
щем считать каждую секунду. Но никто и никогда не слышал от него, ни академика А. Н. Крылова.
казалось бы, очень естественной реплики: «Я занят! Мне некогда!». Язык программирования «Альфа»
Интеллигент высшей пробы, он навсегда остался в памяти коллег, дру- и оптимизирующий «Альфа»-транс-
зей и родных настоящим человеком. лятор, первая советская система раз-
Не часто пользовался он служебным автомобилем: пешая прогул- деления времени «Аист-0», система
ка по лесным тропинкам Академгородка ранним утром на работу и по- учебной информатики «Школьница»,
здним вечером домой стали частью его повседневной жизни. система подготовки печатных изда-
Академик А. П. Ершов уделял много внимания проблемам инфор- ний «Рубин», многопроцессорная ра-
мационного обеспечения учёных. Он очень любил книги и собирал их бочая станция «Мрамор» — все эти
всю жизнь. В его личной библиотеке хранилось более 30 тыс. книг, жур- значительные проекты инициирова-
налов, трудов конференций, препринтов и отдельных оттисков статей лись А. П. Ершовым и выполнялись
практически на всех европейских языках. После смерти Андрея Петро- под его руководством.
вича его наследники передали библиотеку в Институт систем инфор- Благодаря уникальным способ-
матики. Теперь это Мемориальная библиотека имени А. П. Ершова. ностям научного предвидения Анд-
Андрей Петрович Ершов был не только талантливым учёным, учи- рей Петрович одним из первых в на-
телем и борцом за свои идеи, но и выдающейся, разносторонне ода- шей стране осознал ключевую роль
рённой личностью. Он любил музыку, поэзию, писал сам и переводил вычислительной техники в прогрессе
на русский язык стихи английских поэтов. Им сделан замечательный науки и общества. Его блестящие
перевод киплинговского стихотворения «Когда» («К сыну»), который идеи заложили основу для развития
специалисты считают лучшим (а ведь существуют переводы и таких в России таких научных направле-
столпов поэзии, как С. Я. Маршак и М. Л. Лозинский). Любимым мес- ний, как параллельное программи-
том отдыха были музыкальные вечера в Доме учёных. рование и искусственный интеллект.
Андрей Петрович прекрасно играл на гитаре и пел. Приятно вспом- В 1980 г. академик начал экспери-
нить вечер у костра в сосновом лесу на берегу Оби. Школьники, слуша- менты по преподаванию программи-
вшие днём лекции «О человеческом и эстетическом факторах в програм- рования в средней школе. Это приве-
мировании», окружают плотным кольцом любимого учителя, взявшего ло к введению в школьную программу
в руки гитару, и тихонько подпевают. Все, кто имел счастье общаться курса информатики и вычислитель-
с академиком Ершовым, будут всегда помнить его блестящие идеи, ной техники. Широко используемый
выдающиеся достижения и необыкновенную доброжелательность. сейчас термин «школьная информа-
Работал он удивительно. Конечно, святыми были рабочий кабинет тика» рождён в кабинете Ершова в Вы-
и университетская библиотека. Но выдающийся учёный не видел за- числительном центре СО АН. С его не-
труднений, если приходилось писать на откидном столике самолётно- посредственным авторским участием
го кресла или в междугородном автобусе Новосибирск — Барнаул. (предложил описание школьного ал-
Младшие коллеги и ученики Ершова старались подражать стилю его горитмического языка) подготовлен
работы даже в мелочах. Каждая страничка рукописей имела пометки первый советский школьный учеб-
даты, часа и минут. Редкая сосредоточенность и целеустремлённость ник по информатике. Кроме того, он
позволяли не забывать о широком диапазоне поглощавших его дел. создал ряд учебных телепередач по
Даже встречу в палате Онкологического центра незадолго до данному курсу. А. П. Ершов был по-
кончины Ершова нельзя было назвать посещением больного. Рядом стоянным и самым дорогим гостем
с больничной койкой стоял столик с книгами и рукописями, Андрей всех Всесоюзных летних школ юных
Петрович постоянно работал, говорил о делах и заботах посетите- программистов, регулярно проводив-
ля, а не о мучившей его болезни. шихся в новосибирском Академго-
родке.
76
Наука информатика
77
Информация и информатика
ЧТО МОЖЕТ
ПРОГРАММИСТ
Вы прирождённый
программист, если
в ваших наручных
часах стоит про-
цессор классом не
ниже Pentium IV.
78
Наука информатика
79
Информация и информатика
80
Наука информатика
81
Информация и информатика
82
Наука информатика
83
АЛГОРИТМ
АЛГОРИТМЫ И ПРОГРАММЫ
86
Алгоритм
87
Алгоритмизация
88
Алгоритм
ПЕРВЫЕ АЛГОРИТМЫ
89
Алгоритмизация
90
Алгоритм
лем, таких, для которых нельзя найти именно и для чего делается, далеко не
процедуру решения. Следовательно, просто.
надо было научиться математиче- Для записи алгоритмов необходим
ски строго доказывать факт отсутст- некоторый язык. При этом крайне
вия соответствующего алгоритма. Это важно, какой именно язык выбран.
можно сделать только в том случае, Неудобство русского (равно как и лю-
если существует строгое определение бого другого естественного) языка
алгоритма. Попытки выработать та- для этих целей очевидно. Фраза
кое определение привели на рубеже «мальчик взял с собой тетрадь в клет-
20—30-х гг. XX в. к возникновению ку» может сообщать нам о школьни-
теории алгоритмов. ке, подготовившемся к уроку ариф-
Почти в это же время возникла метики. Но может иметься в виду
и практическая потребность в осуще- юный любитель животных, который
ствлении сложных вычислений. собирается у клетки с тигром запи-
На повестку дня встала необходимость сывать свои наблюдения и ощуще- Евклид.
решения задач из разных научных ния... Слова могут иметь самые раз-
и инженерных дисциплин: радиоло- ные смысловые оттенки, и понять их
кации, самолётостроения, моделиро- без детального анализа всего текста
вания физических процессов (осо- подчас просто невозможно.
бенно из области ядерной физики, Весьма распространённым явля-
баллистики и многих других). Вычис- ется графический способ записи ал-
лительные возможности человека горитмов на языке блок-схемы. Она
были существенно ограничены, сред- представляет собой набор элемен-
ства механизации, а тем более авто- тов (блоков), соединённых стрел-
матизации вычислений практически ками. Каждый элемент — это неко-
отсутствовали. Появление первых торая часть алгоритма. Элементы
проектов вычислительных машин блок-схемы делятся на два вида:
стимулировало исследование возмож- содержащие какие-либо действия
ностей практического применения обозначают прямоугольниками, а
алгоритмов, использование которых содержащие проверку условия —
ввиду их трудоёмкости было ранее ромбами. Из прямоугольников всег-
недоступно. Дальнейший бурный про- да выходит только одна стрелка
гресс вычислительной техники опре- (входить может несколько), а из
делил развитие как теоретических, так ромбов — две. Первая помечается
и прикладных аспектов изучения ал- словом «да», а вторая — «нет» (они
горитмов. показывают, выполнено условие или
нет).
На рисунке показана блок-схема
КАК ЗАПИСЫВАТЬ алгоритма нахождения НОД:
АЛГОРИТМЫ
91
Алгоритмизация
ПРОГРАММА
Слово «программа» имеет несколько
значений: план деятельности или ра-
бот, краткое изложение содержания
учебного предмета, содержание кон-
церта или циркового представления
и некоторые другие. Среди них от-
дельно выделено одно, специальное
значение: программа — это описание
алгоритма решения задачи на языке
компьютера.
92
Алгоритм
93
Алгоритмизация
как Abu ‘Abd Allah Muhammad ibn Musa в одном из германских математичес-
al-Khwarismi и означает «Мухаммад, ких словарей «Vollstandiges mathema-
сын Мусы, отец Абдуллы, родом из Хо- tisches Lexicon», изданном в Лейпциге
резма». Хорезм — это историческая об- в 1747 г. Термин algorithmus объясня-
ласть на территории современного Уз- ется в нём как понятие о четырёх ариф-
бекистана, центром которой является метических операциях. Но такое зна-
древний город Хива. чение не было единственным, ведь
Почти все словари сходятся в том, терминология математической науки
что первоначально слово имело фор- в те времена ещё только формирова-
му algorismi и лишь спустя какое-то вре- лась. В частности, латинское выраже-
Аль-Хорезми. мя потеряло последнюю букву, приоб- ние «algorithmus infinitesimalis» приме-
ретя более удобный для европейского нялось к способам выполнения
произношения вид algorism. Позднее действий с бесконечно малыми вели-
и оно, в свою очередь, неоднократно чинами.
подвергалось искажениям, последнее Постепенно все старинные значе-
из которых, скорее всего, связано со ния вышли из употребления. К нача-
словом arithmetic, имеющим гречес- лу XX в. слово «алгоритм» уже означа-
кое происхождение. Уже в новом на- ло «всякий арифметический или
писании слово встречается в XVIII в. алгебраический процесс, который вы-
полняется по строго определённым
правилам», именно так оно объясня-
ется в Большой советской энцикло-
СПОР АЛГОРИСМИКОВ И АБАЦИСТОВ педии (1926 г.).
Можно проследить процесс про-
Многие века абак фактически был единственным средством для прак- никновения слова «алгоритм» в рус-
тических вычислений. В историю математики вошло упорное проти- ский язык. Его не было ни в «Толковом
востояние лагерей абацистов и алгорисмиков (первых иногда называ- словаре живого великорусского язы-
ли гербекистами). Началось оно с появления в 1202 г. знаменитой ка» В. И. Даля (1863 г.; а вот слово «ал-
«Книги абака» Леонардо Пизанского (Фибоначчи), где впервые было гебра» там присутствует), ни в «Толко-
сказано, что кроме счёта на пальцах и на абаке возможен также счёт вом словаре русского языка» под
на бумаге. Алгорисмики предложили использовать для вычислений редакцией Д. Н. Ушакова (1935 г.). За-
арабские цифры, только-только начавшие проникать в Европу благо- то слово «алгорифм» есть и в популяр-
даря переводам сочинений восточных математиков. Но прошло це- ном дореволюционном Энциклопеди-
лых три столетия, прежде чем новый способ счёта окончательно ческом словаре братьев Гранат, и в уже
утвердился, — столько времени потребовалось, чтобы выработать упоминавшемся первом издании БСЭ,
общепризнанные обозначения, усовершенствовать и приспособить где говорится, что в Средние века так
к записи на бумаге методы вычислений. И хотя трактат Луки Пачоли называли «правило, по которому вы-
«Сумма знаний по арифметике, геометрии, отношениям и пропорцио- полняется то или другое из четырёх
нальности» (1494 г.) подвёл черту под этим спором, счётная доска ещё арифметических действий по десятич-
долго не выходила из употребления. ной системе счисления». А вот «Мате-
матическая энциклопедия» даёт его
расширенное толкование: не только
как искусства счёта в десятичной по-
зиционной системе счисления, но
и как самой десятичной системы.
То, что алгоритм воспринимался
как термин сугубо специальный и ма-
лозначительный, подтверждается от-
сутствием соответствующих статей
в менее объёмных изданиях. В част-
ности, его нет даже в десятитомной
Малой советской энциклопедии
(1957 г.), не говоря об однотомных
энциклопедических словарях. Но за-
то спустя десять лет в третьем изда-
Лука Пачоли. нии БСЭ (1969 г.) «алгоритм» уже ха-
рактеризуется как «одно из основных
94
Алгоритм
95
ОСНОВЫ ПРОГРАММИРОВАНИЯ
ПРОСТЕЙШИЕ ПРОГРАММЫ
ввод а
96
Основы программирования
97
Алгоритмизация
вперёд 20
вправо 90
вперёд 20
вправо 90
вперёд 20
вправо 90
вперёд 20
вправо 90
98
Основы программирования
99
Алгоритмизация
a:= 1
если a < 3
| то b:= “подходящий результат”
всё
c:= 10
100
Основы программирования
101
Алгоритмизация
нц <выражение> раз
| <серия>
кц
102
Основы программирования
шения формально отсутствует, его такого цикла? Для этого есть две воз-
участие в выполнении команды оче- можности:
видно: цикл завершается, как только • если группа команд, которые же-
неявно формируемое и увеличиваю- лательно выполнить в теле команды
щееся на единицу при каждом повто- повторения, может понадобиться
рении тела цикла значение счётчика в программе неоднократно, то реко-
сравняется с n. Так, цикл мендуется создать процедуру из этой
группы команд, и тогда на соответст-
a:= 10 вующей ветви выражение <команда>
b:= 12 записать как вызов процедуры. Вот как
i:= 1 Кукарача решает задачу спуска вниз
s:= 0 по лесенке:
нц a + b раз
| s:= s + m [i] ЭТО СПУСК
| i:= i+1 ПОВТОРИ 9 ЛЕСЕНКА
кц КОНЕЦ
ЭТО ЛЕСЕНКА
суммирует первые 22 значения мас- ВПРАВО
сива m, от m[1] до m[22]. ВНИЗ
В языке управления исполнителем КОНЕЦ
Кукарача, где в качестве тела цикла
<серия> допускается единственная ко-
манда, цикл с фиксированным числом
повторений выглядит совсем просто:
ПОВТОРИ n <команда>
ПОВТОРИ 9 ВПРАВО
ПОВТОРИ 9 ВНИЗ
ПОВТОРИ 9 ВЛЕВО
ПОВТОРИ 9 ВВЕРХ
103
Алгоритмизация
нц пока <условие> нц
| <тело цикла> | <тело цикла>
кц кц при <условие>
a:= 10
b:= 12
i:= 1
s:= 0
нц
| s:= s + m [i]
| i:= i + 1
кц при i < a + b
104
Основы программирования
105
Алгоритмизация
МАССИВЫ
106
Основы программирования
107
Алгоритмизация
СТРУКТУРЫ ДАННЫХ
108
Основы программирования
109
Алгоритмизация
110
Основы программирования
111
Алгоритмизация
Дно
стека
Пружина
СТЕК
Стек легко представить в виде рас-
Стек — самая популярная и, пожалуй, положенной вертикально трубки
самая важная структура данных с пружинным дном. Верхний конец
в программировании. Стек представ- трубки открыт, и в него можно до-
бавлять элементы. Каждый новый
элемент проталкивает на одну пози-
цию вниз элементы, помещённые
в стек ранее. При извлечении эле-
мента из стека все остальные как бы
выталкиваются вверх. (Общеприня-
тые английские термины здесь очень
выразительны: операция добавления
элемента в стек обозначается словом
push — «затолкнуть», «запихнуть»,
а операция удаления словом pop —
«выстреливать».) Пример стека — ма-
газин карабина.
112
Основы программирования
ИСПОЛЬЗОВАНИЕ СТЕКА
В ПРОГРАММИРОВАНИИ
113
Алгоритмизация
РЕАЛИЗАЦИЯ СТЕКА
НА БАЗЕ МАССИВА
114
Основы программирования
Вершина стека SP
Элементы
стека
115
Алгоритмизация
Адрес возврата SP
222
333
116
Основы программирования
× + 2 3 – 15 7,
2 3 + 15 7 – × .
117
Алгоритмизация
118
Основы программирования
119
Алгоритмизация