Так что же в нем хорошего? С точки зрения естественного отбора половое размножение способствует большей генетической изменчивости, в то же время добросовестно воспроизводя отдельные гены. Предположим, что в мире становится жарче. Успешная до этого бактерия, которая размножается почкованием, внезапно оказывается во враждебном окружении. Ее потомку, в точности похожему на нее и адаптированному к прохладному климату, теперь будет сложно выжить.
Единственный способ адаптации для бесполой бактерии – мутация, вызванная репродуктивной ошибкой или вредными факторами окружающей среды. Большинство мутаций неудачны, и они делают бактерию еще менее успешной, но в конце концов может случиться удачная мутация, и на свет появится более теплостойкая бактерия.
Без полового размножения адаптация проблематична, потому что закон мира: «Изменись или умри», – противоречит одному из основных законов жизни: «Сохраняй целостность генома». Такое противоречие хорошо известно и в инженерном деле: две функции системы бывают связаны так, что невозможно откорректировать одну, не нарушив другой. А вот при половом размножении обмен генетическим материалом, или рекомбинация генов, приводит к большой изменчивости, и при этом поддерживается генетическая целостность.
К примеру, возьмем небольшой городок, где всего тысяча жителей. Давайте подсчитаем все возможные варианты спаривания для этих людей (если судить по телесериалам, их может быть очень и очень много) и количество способов, которыми гены всех участников могут перемешаться и рекомбинироваться в их детях. Окажется, что этот городок – целая генетическая «электростанция», способная создать столько же разнообразия, что и миллиарды делящихся бактерий. Разнообразие – это хорошо: если в город придет эпидемия чумы, то некоторые жители ее переживут, а затем передадут детям гены резистентности к этой болезни. Более того, способность к разнообразию, которую создает половое размножение, не наносит вреда геному. Отделяя функцию адаптации от функции поддержания целостности отдельных генов, половое размножение создает разнообразие отдельных особей, при этом сохраняя в целости гены вида. В общем, секс – не только удовольствие, это хороший инженерный подход.
Если мы отправимся еще дальше в прошлое, то найдем бабушку всех революций в сфере обработки информации – это возникновение самой жизни. Жизнь на Земле началась в точке, отстоящей на одну треть от нашего времени к началу Вселенной. (Когда это произошло в других местах и произошло ли вообще, неизвестно.) У живых организмов есть гены, последовательности атомов в молекулах типа ДНК, в которых закодирована информация. Количество информации в одном гене можно измерить: человеческий геном содержит около 6 млрд битов информации. Организмы передают свою генетическую информацию потомству, иногда в мутировавшей форме.
Организмы, которые умеют передавать генетическую информацию, по определению успешны; организмы, которые не могут передать свои гены, вымирают. Генетическая информация, дающая потомству репродуктивное преимущество, обычно сохраняется на протяжении множества поколений, хотя отдельные организмы, которые ее несут, рождаются, воспроизводят потомство и умирают.
Генетическая информация передается посредством естественного отбора. Гены и механизмы их копирования и воспроизведения – это ключевая технология обработки информации жизни. Неудивительно, что масштабы всей генетической информации, которую обрабатывают живые организмы, намного больше масштабов компьютерной обработки информации, и их объемы сравняются еще не скоро.
Жизнь – это очень серьезно. Какая революция может превзойти по своей мощи и красоте происхождение жизни? Но была еще одна, более ранняя революция в сфере обработки информации, без которой не было бы ни одной другой. Первый информационный процессор – сама Вселенная. Каждый атом, каждая элементарная частица содержит информацию. Каждое столкновение между атомами, каждое динамическое изменение во Вселенной, даже самое крошечное, обрабатывает эту информацию систематическим образом.
Такая вычислительная способность Вселенной лежит в основе всех последующих революций в сфере обработки информации. Как только физическая система приобретает способность обрабатывать информацию на рудиментарном уровне, выполняя простые операции с несколькими битами, из этих элементарных операций могут быть построены сколь угодно сложные формы обработки информации. Законы физики разрешают простую обработку информации на квантово-механическом уровне: одна частица – один бит; одно столкновение – один oп. Сложные формы, которые мы видим вокруг: жизнь, размножение, язык, общество, видеоигры – все они состоят из простых операций, которые управляются законами физики и в которых участвуют всего по нескольку квантовых битов за раз.
Каждая революция в сфере обработки информации связана с той или иной новой технологией – это компьютер, книга, мозг, ДНК. Эти технологии позволяют записывать и обрабатывать информацию в соответствии с некими правилами. Но что за технология связана с обработкой информации Большого взрыва? Какая машина обрабатывает информацию в вычисляющей Вселенной? Чтобы увидеть эту универсальную технологию обработки в действии, достаточно просто открыть глаза и оглянуться вокруг. Машина, выполняющая «универсальные» вычисления, – это сам Универсум, сама Вселенная.
Первую лекцию своего курса об информации для старшекурсников, который я читаю в Массачусетском технологическом институте, я начал так, как делаю это всегда: «Лучше всего, – сказал я двум десяткам студентов, сидящих передо мной, – если вы будете задавать мне вопросы, а я буду на них отвечать. Если вы не будете задавать вопросы мне, то я буду задавать вопросы вам. Если вы не ответите на мои вопросы, то я расскажу вам то, что, по моему мнению, вы должны знать. Вопросы есть?»
Я ждал. Тишина.
Что-то здесь не так. Обычно наши студенты радуются, если им удается озадачить преподавателя, особенно если знают, что он может озадачить их самих.
Я перешел ко второму шагу: «Вопросов нет? Тогда вот вопрос вам: что такое информация?»
Молчание. Что с ними такое? В конце концов, эти студенты с первого курса заполняли свои головы информацией. Если они не начнут извергать ее обратно, мне придется перейти к третьему шагу.
«Ладно. А как вам такой вопрос: какова единица информации?»
Все хором ответили: «Бит!»
О чем говорит этот ответ, впрочем, как и молчание? Намного легче измерить количество информации, чем сказать, что она такое. А на вопрос «Сколько?» часто ответить проще, чем на вопрос «Что такое…?» Что такое энергия? Что такое деньги? Это трудные вопросы. Сколько нужно энергии, чтобы…? Сколько нужно денег, чтобы…? На такие вопросы можно дать точные и простые ответы.
«Что такое бит?», – спросил я. Теперь ответы посыпались со всех сторон: «0 или 1!»; «Орел или решка!»; «Да или нет!»; «Истина или ложь!»; «Выбор между двумя альтернативами!»
Все эти ответы правильны. Английское слово bit («бит») – сокращение от binary digit; здесь digit – это цифра, а binary («двоичный») значит «состоящий из двух частей», и бит представляет одну из этих двух альтернатив. Традиционно эти альтернативы обозначают как «0» и «1», но любые две четкие альтернативы (горячий/холодный, черный/белый, внутрь/наружу) можно считать способом хранения бита.
Бит – самая маленькая единица информации. Бросив монету, мы получим один бит: орел или решку. Два бита представляют немного больший фрагмент информации. Подбросив монету два раза, мы получим одну из четырех (два раза по две) альтернатив: орел-орел, орел-решка, решка-орел, решка-решка. Три броска монеты дадут нам одну из восьми альтернатив (два раза по два раза по две).
Как видно даже на этих простых примерах, если мы будем продолжать бросать монету, то количество альтернатив – то есть возможных исходов серии бросков – станет быстро расти. С каждым последующим броском (помните: каждый дает один бит) количество альтернатив удваивается. Поэтому, чтобы вычислить количество различных исходов в определенном сценарии, мы просто умножаем два на два столько раз, сколько у вас битов. Например, десять битов – это два умножить на два десять раз, или 1024 варианта: 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 210 = 1024, что близко к одной тысяче, или 103.
Иначе говоря, десять битов соответствуют приблизительно трем цифрам нашей обычной десятичной системы счисления, которые обозначают единицы, десятки и сотни. Измерение количества информации – просто вопрос подсчета. Вести счет в битах проще, чем в цифрах, хотя этот метод знаком нам меньше. Счет от 0 до 9 очень прост: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Но тут цифры кончаются, и следующее число – это 1, после которого следует 0, то есть 10. Число 10 – это 1 в столбце десятков и 0 в столбце единиц. Следующее число, 11, – это 1 в столбце десятков и 1 в столбце единиц. Так можно продолжать считать вплоть до 99. Следующее число – 100. Это 1 в столбце сотен, 0 в столбце десятков и 0 в столбце единиц. (Понятно теперь, почему было так сложно понять десятичную систему счета в первый раз, в пятилетнем возрасте?)