Джордж и код, который не взломать — страница 26 из 38

– Если ты не усвистишь вперёд, то я увижу отражатели на твоих кроссовках, – ответил ей Джордж.

– Тогда покатили!



Анни объехала Джорджа и понеслась, иногда озираясь, чтобы убедиться, что он не отстал. Несколько раз ей приходилось сворачивать в переулки, чтобы не столкнуться с бродившими по городу группами людей. К счастью, благодаря очкам она замечала их раньше, чем они её. В зелёном «ночном» свете эти люди выглядели угрожающе. Они были из тех, кто охотится за чужим добром, и Джорджу с Анни не хотелось стать их добычей.

Проезжая по центральным улицам университетского городка, мимо корпусов с колоннами, арками и ухоженными внутренними двориками, они увидели нечто такое, что ещё вчера не могли бы вообразить. Прямо за воротами одного из самых больших колледжей, на ухоженной лужайке, окружённой зданиями с витражами и башенками, вокруг костра расположилась какая-то компания; казалось, что они готовят объедки, выкопанные из мусорных баков и вываленные на тротуар.



На этот раз Анни решила не сворачивать, иначе пришлось бы делать слишком большой крюк. Она развила самую высокую скорость, на какую была способна, и пролетела мимо них на всех пара́х. Джордж не отставал. Сидевшие у костра оглянулись, но не проявили намерения броситься в погоню, так что вскоре Джордж и Анни свернули в узенькую улочку под грациозной аркой.

– Отлично! – сказал Джордж. – Никто нами не интересуется…

Однако он поспешил с выводами. Когда они уже подъезжали к работе Эрика, сзади донеслись подозрительные звуки. Когда мчишь на скейте, обернуться – задача не из лёгких, но Джорджу удалось сделать это несколько раз – и…

– За нами погоня! – крикнул он во всю глотку.

Ветер донёс до него голос Анни:

– Кто?

– Какой-то робот! – завопил Джордж. – Похожий на того, с Луны! И он нас уже догоняет!

Робот был ещё довольно далеко, но приближался, как и на Луне, огромными скачка́ми.



– Скорее! – крикнул Джордж, и Анни припустила так, что город вокруг неё стал похож на размытое пятно. Робот, преследовавший их, спотыкался; высокая технология не в силах была преодолеть брусчатку древней улицы.

– Он забуксовал! – сказал Джордж, когда они с Анни затормозили у дверей математического факультета. – Анни, открывай дверь, скорее!

– Как странно! – Тяжело дыша, Анни уставилась на тёмное пустое здание. – Неужто мы ошиблись и он охотится на нас, а не на папу?

– Не озирайся! – настаивал Джордж. – Скорее открывай!

Вглядываясь во тьму, он вновь различил зловещую серебристую фигуру, которая не без труда поднялась с мостовой и двинулась к ним.

Анни изо всех сил припоминала код. Дверь математического факультета закрывалась на кодовый замок: это было металлическое колёсико, выступавшее из старомодной латунной панели.



Джордж молчал, боясь потревожить Анни, нарушить её сосредоточенность. Однако мысленно он выл от отчаяния: робот уже совсем рядом, а они припёрты к двери, и деваться некуда!

Наконец Анни подобрала шифр. Механический замок повернулся, и старинная тяжёлая дверь со скрипом открылась. Они вбежали внутрь, захлопнули её за собой и издали вздох облегчения. В здании было темно, хоть глаз выколи, и, судя по тому, с какой силой заколошматил в дверь робот, они по-прежнему были в большой опасности.

– Старый Космос… – прошептал Джордж.

Очки ночного видения благополучно провели их сквозь тьму к подвалу, где хранился Старый Космос, но дверь в подвал была заперта.

Сверху доносился звон разбитого стекла: робот бил окна первого этажа.

– Как же нам туда попасть? – прошептала Анни.

На двери слабо светился кодовый замок.

– Ты знаешь код? – спросил Джордж.

– М-м-м… придётся угадать… – Она впечатала ряд цифр.

– А как ты будешь угадывать? – спросил Джордж, стараясь не выдать свой страх, чтобы не сбить Анни, иначе они погибли.

– Я попробовала ввести папин день рожденья, – сказала она, – но не получилось. Мамин – тоже нет. А теперь…

Она что-то набрала на клавиатуре – и на этот раз дверь отъехала в сторону, приглашая их войти.

– А это мой день рожденья! – Анни едва не завопила от радости. – Сработало!

Дверь закрылась за ними с приятным слуху щелчком. Может быть, робот и способен её вышибить, но пока, по крайней мере, они выиграли немножко времени.

Внутри их поджидал допотопного вида компьютер, громадный и неуклюжий, занимавший почти весь подвал. Глядя на него, Джордж в очередной раз с восхищением подумал о том, как сильно уменьшились компьютеры всего за пару десятков лет.

– Добро пожаловать, Анни! – Эти слова Космоса появились на старинной рулонной компьютерной бумаге с дырочками по краям. Разговаривать он не умел, так что ему приходилось печатать. – Рад снова тебя видеть.


Что такое компьютер

Математические законы

У Вселенной есть удивительное свойство: в ней всё, от планет до лучей света и звуковых волн, подчиняется математическим законам, и мы можем предсказать её поведение путём математических расчётов.

Вычислительная машина позволяет воспроизвести то же самое в обратном порядке: мы разрабатываем и собираем совокупность элементов, которые будет функционировать согласно математическим законам по нашему выбору. Мы позволяем этой машине вести себя естественно («оперировать»), она производит расчёт и выдаёт нам ответ. Если теоретический план машины, её конструкция и наши измерения достаточно точны, то мы можем рассчитывать, что точным будет и полученный в итоге ответ.

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


Очень древний аналоговый компьютер

Еще во II веке до нашей эры в Греции был сконструирован Антикитерский вычислительный механизм, воспроизводивший обращение Солнца, Луны и планет с помощью вращающихся шестерней. Создатель Антикитеры провел аналогию между небесными телами и бронзовыми шестернями, сцепленными в сложный механизм таким образом, чтобы они точно отражали взаимное расположение этих тел в небе в разные моменты времени. Поскольку Антикитерский механизм основан на аналогии с конкретной физической системой, его можно считать примером аналогового вычислительного устройства. Ещё один пример такого устройства – линейка с выдвижной центральной шкалой для расчёта логарифмов, то есть логарифмическая линейка. Она была изобретена ещё в XVII веке и широко применялась до 1970-х годов, когда появились карманные электронные калькуляторы.

Однако у аналоговых вычислительных устройств есть известные ограничения. Главный их недостаток состоит в том, что аналоговый компьютер может решать с определённой точностью только один тип задач.

Для решения новой задачи может потребоваться другой математический метод, а значит, другая аналогия, другое устройство и другой механизм.

Люди же подходят к решению задач иначе. Человек может, скажем, написать ряд уравнений, а потом шаг за шагом преобразовать их в другие уравнения с помощью математических правил. Это хорошо знают школьники, решающие квадратные уравнения. Для такого подхода к решению задач требовался новый вид вычислительных устройств.


Паровой компьютер!

Появились и другие механические вычислительные устройства: в XVII веке «суммирующая машина» Паскаля была поистине революционным изобретением. А в 1837 году Чарльз Бэббидж придумал «аналитическую вычислительную машину», которая (если бы её удалось построить) стала бы первым программируемым компьютером: программы и данные загружались бы в неё посредством перфокарт, в ней были бы только механические детали, и она могла бы выполнять операции подобно универсальной машине Тьюринга, – однако скорость её работы была бы в сто миллионов раз меньше, чем у современного компьютера! И она приводилась бы в действие паровым двигателем…


От Тьюринга до первых современных компьютеров

Цифровой компьютер – это машина, предназначенная для того, чтобы автоматически следовать алгоритмам – подобно человеку, но гораздо быстрее. На практике это означает ввод целого числа (возможно, очень большого) и получение на выходе другого целого числа.


Почему целые числа?

Превратить текст в числа легко – например, в Американском стандартном коде для обмена информацией (ASCII) большая буква А обозначается как 65, а маленькая z – как 122. На практике нам удобно иметь дело с дробями, имеющими определённое число знаков после запятой (то есть определённую точность) – например, 99,483. То же самое число можно представить как 0,99483 × 100 (а 100 – как 10 × 10, в математической записи – 10²). Цифровому компьютеру остаётся только сохранить в памяти целое число 99483 и 2 – показатель степени, в которую нужно возвести число 10 (10²).

На самом деле компьютер обычно обрабатывает двоичные цифры (биты), принимающие только значения 0 или 1; и любые данные – числа, текст, рисунки, программы – можно представить (закодировать) в виде целых чисел в двоичной записи и сохранить в памяти компьютера в виде одного большого двоичного числа.


Математические правила, по которым работают цифровые компьютеры, основаны на универсальной машине Тьюринга. Цифровой компьютер принимает программу (список инструкций для конкретной машины Тьюринга, который можно закодировать в виде большого двоичного числа) как часть входных данных и с её помощью выполняет необходимые операции для всех входных данных. То есть «компьютер» в современном понимании – это отдельно взятая машина, способная вычислить всё, что способна вычислить машина Тьюринга, если введена нужная программа и имеется достаточно времени и памяти для её реализации.

Первый компьютер был создан в 1941 году в Германии Конрадом Цузе и назывался Z3. Вместо шестерней в нём использовались телефонные реле – следовательно, он был не просто механическим, а электромеханическим, – а данные в него вводились с помощью перфоленты. Вскоре после этого в 1946 году был изобретён первый электронный цифровой компьютер общего назначения (тьюринг-полный, то есть удовлетворяющий требованию полноты по Тьюрингу) – а