Возьмите квадрат и покрасьте в белый цвет. Теперь еще один квадрат расположите рядом с первым и покрасьте черным. К нему присоедините квадрат и покрасьте в белый. Рядом расположите квадрат и покрасьте в черный цвет. Следующий квадрат рядом с этим…
Вы можете продолжать давать инструкции в том же духе, пока не дойдете до восьми квадратов (завершив одну строку), а затем придется попросить вернуться к первому квадрату и расположить черный прямо над ним, а затем продолжать квадрат за квадратом, чтобы заполнить вторую строку, и так далее. Это громоздкий способ передать инструкции – и не очень рациональный. Сравните это с таким:
Составьте матрицу из квадратов 8×8, поочередно окрашивая их то в черный, то в белый цвет.
Первый способ передачи команд относится к каждому из 64 квадратов по отдельности. В двоичной арифметике 64 единицы информации требуют 6 бит информации (число битов – это показатель уравнения 2n = 64. В этом примере n = 6, потому что 26 = 64). Но реализация второго правила, где нужно «поочередно окрашивать квадраты», требует только 1 бита: данный квадрат либо черный, либо белый, и поэтому есть два варианта. Поскольку 21 = 2, нам нужен только 1 бит (1 – показатель степени, определяющий количество информации). Два дополнительных факта, что сетка 8×8 и цвета чередуются, – это еще три единицы информации, которые занимают 2 бита[800]. Если вы хотите определить, где какие фигуры располагаются, то снова приходите к 6 битам, потому что каждый бит должен быть указан отдельно. Так что пустая шахматная доска может быть полностью задана в 2 бита, доска с 32 фигурами – в 6 бит. На загруженной шахматной доске больше информации, чем на пустой, и теперь у нас есть способ количественно оценить, насколько. Несмотря на то что Шеннон и его коллеги из Bell Labs работали в докомпьютерном аналоговом мире, они думали о том времени, когда электроника будет использоваться для телекоммуникаций. Поскольку компьютеры основаны на двоичной арифметике, Шеннон решил использовать единицы измерения цифровых компьютеров, биты. Но это не обязательно должно быть так – мы могли бы говорить об этом в обычных числах, а не в битах, если бы хотели: команды по изготовлению пустой шахматной доски требуют как минимум 4 единицы информации, а команды по воссозданию шахматной доски с фигурами – 64 единицы[801].
Та же логика применяется к воссозданию фотографий и изображений на компьютере. Когда вы смотрите на JPEG или другой файл изображения, вы видите его воссоздание: изображение было создано прямо там, на месте, как только вы дважды щелкнули мышкой по его имени. Если вы посмотрите в сам компьютерный файл, который ваша операционная система использует для создания изображения, вы увидите строку нулей и единиц. Изображения нет, только нули и единицы, словарь двоичной арифметики. В черно-белом изображении каждая маленькая точка на экране, пиксель, может быть либо черной, либо белой, а нули и единицы говорят вашему компьютеру, каким именно делать каждый конкретный пиксель – черным или белым. На цветные фотографии уходит больше команд, потому что они представлены в пяти различных возможных цветах: черный, белый, красный, желтый и синий[802]. Вот почему файлы с цветными картинками «тяжелее», чем черно-белые: они содержат больше информации.
Теория информации не говорит о том, как много сведений мы можем использовать, чтобы описать вещи; она говорит о минимальном необходимом объеме. Помните, Шеннон изо всех сил старался придумать, как втиснуть больше телефонных разговоров в одну пару медных проводов, чтобы максимально увеличить пропускную способность Ma Bell и снизить инвестиции в новую инфраструктуру (телеграфные столбы, провода, сетевые коммутаторы).
Специалисты в области информационных технологий тратят много времени, пытаясь уплотнить данные, чтобы программы могли работать более эффективно. Другой способ взглянуть на теорию информации Шеннона – рассмотреть две строки букв длиной 64 символа:
1. abababababababababababababababababababababababababababababababab
2. qicnlnwmpzoimbpimiqznvposmsoetycqvnzrxnobseicndhrigaldjguuwknhid
Первая строка может быть представлена 2-битной командой:
64 элемента, ab, чередуя.
Вторая, будучи случайной последовательностью, требует 64 отдельных команд (6 бит), потому что сама команда должна быть точно такой же, как строка:
qicnlnwmpzoimbpimiqznvposmsoetycqvnzrxnobseicndhrigaldjguuwknhid
Как определить, случайна ли последовательность цифр или букв? Очень важная идея на эту тему появилась у российского[803] математика Андрея Колмогорова. Он сказал, что строка случайна, если ее невозможно описать или представить в сокращенной форме. По его определению, первая строка случайной не может быть, потому что мы способны придумать схему (программисты называют это алгоритмом), чтобы представить ее в более коротком варианте. Вторая строка случайна, потому что нет никакой схемы, которую мы можем придумать, кроме простого перечисления каждого элемента по одному, как в изначальной последовательности.
Теория сложности Колмогорова кратко излагает эту проблему следующим образом: последовательность можно назвать случайной, если вы не можете объяснить, как ее получить, используя меньшее количество элементов, чем в самой последовательности. Это определение сложности сочетается с ежедневным, дилетантским использованием термина. Мы говорим, что автомобиль более сложен, чем велосипед, и, конечно, для создания машины требуется гораздо больший набор команд.