Выбрать главу

Ада Байрон была дочерью великого английского поэта лорда Байрона и Анабеллы Милбэнк, которую муж называл «королевой параллелограммов», так как она обучалась алгебре и геометрии у главы кафедры Кембриджа. Лорд Байрон оставил семью после рождения Ады, и Анабелла начала обучать дочь наукам с очень раннего возраста. В семнадцать лет девушка познакомилась с Чарльзом Бэббиджем, произошло это на ужине, организованном ее подругой и наставницей Мэри Сомервилл, которая всегда поощряла занятия Ады математикой. Вскоре Ада объяснила Бэббиджу, как можно вычислить числа Бернулли с помощью перфокарт. Эта задача по своей сложности намного превосходила те, которые к тому времени удалось решить изобретателю аналитической машины. С помощью своего метода, позволявшего «ткать алгебраические задачи», Байрон не только написала первую в истории программу, но и показала, что для решения задачи алгоритмически необязательно начинать с нуля. При решении почти всех задач повторялся определенный набор базовых операций, поэтому часто было достаточно скомбинировать уже имеющиеся перфокарты в правильном порядке. Такие базовые операции современные программисты называют подпрограммами.

Используя тот же подход, что и Ада Байрон, Алан Тьюринг смог заложить основы теории алгоритмов в статье «О вычислимых числах в приложении к проблеме разрешения», опубликованной в 1937 году в журнале Proceedings of the London Mathematical Society. В то время как Бэббидж на смертном одре был убежден, что, проживи он еще несколько лет, и его аналитическая машина стала бы известной всему миру, Байрон и Тьюринг поняли, что прежде чем можно будет сконструировать первый компьютер, необходимо значительно продвинуться в теории алгоритмов. Наибольших размышлений требовал вопрос, какие задачи можно решить с помощью машины Бэббиджа, а какие — нет. Нечто подобное происходит сегодня с квантовыми вычислениями, теория которых заметно отстает от практических результатов, полученных в попытках сконструировать первый квантовый компьютер.

Гениальная идея Тьюринга, позволившая определить границы возможностей компьютеров будущего, заключалась в том, чтобы со всей серьезностью обдумать, что означает «мыслить как машина». Очевидно, что компьютер не обладает ни разумом, ни воображением человека, которые позволяют нам действовать в совершенно незнакомых ситуациях. С другой стороны, машины не устают и не скучают, выполняя трудоемкие вычисления, у них никогда не бывает «плохих дней». Они — машины! Чтобы отличить задачи, которые компьютер не способен решить ввиду технических ограничений (например, потому что время выполнения написанной программы будет сопоставимо с возрастом вселенной), от тех, которые неразрешимы из-за особенностей формулировки самой задачи, Тьюринг описал идеальный компьютер с бесконечным объемом памяти и бесконечным временем выполнения программ. Задача, которую не могла решить эта машина Тьюринга, не поддалась бы самому мощному компьютеру будущего, таким образом, метод, разработанный английским математиком, позволял определить границы возможностей компьютеров.

Вверху — памятная марка, выпущенная в честь столетия со дня рождения Чарльза Бэббиджа. Внизу — табличка у садов Барселоны, посвященных Аде Байрон

(фото: Анна Наварро Дюран).

* * *

ЧИСЛА БЕРНУЛЛИ

В одной из известнейших историй о Карле Фридрихе Гауссе рассказывается, что как-то раз его учитель в начальной школе захотел немного передохнуть и дал ученикам задание сложить все числа от 1 до 100. Учитель не рассчитывал, что юный Гаусс мгновенно найдет ответ, применив метод, который он затем использовал для вычисления суммы чисел от 1 до 1000. Пусть нужно найти сумму всех натуральных чисел, предшествующих числу n. Идея Гаусса заключалась в том, чтобы записать сумму 1 + 2 + … + n в обратном порядке и воспользоваться симметрией ее членов так, как показано ниже: