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

Бэббидж понял, что даже сложные математические задачи могут быть разбиты на шаги, которые бы свелись к расчету «конечных разностей» с помощью простых операций сложения и вычитания. Например, для того чтобы определить значения квадратов последовательных чисел в 12, 22, 32, 42 и так далее, нужно выписать начальные числа в этой последовательности: 1, 4, 9, 16… и сформировать из них столбец А. В соседнем столбце B можно выписать разницу между последовательными числами из столбца А, то есть в данном случае это последовательность чисел 3, 5, 7, 9… В столбец C вносятся разности между последовательными числами столбца B, которые равны 2, 2, 2, 2, После того как процесс был разбит на такие шаги, его можно было развернуть в обратную сторону (то есть по известным постоянным третьим разностям восстанавливать квадраты чисел) и отдать решать задачу не обученным математике расчетчикам. Один из них должен отвечать за добавления двойки к последнему числу из столбца B, а затем передавать этот результат другому, который будет добавлять этот результат к последнему числу из столбца А, получая таким образом следующее значение в последовательности квадратов чисел.

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

Как она работала? Разностная машина использовала вертикальные валики с дисками, которые могли поворачиваться на угол, соответствующий любой цифре. Они были связаны с зубчиками шестеренки, которые можно было повернуть рукояткой для того, чтобы сложить это число с числом, набранным на диске соседнего валика (или вычесть его). Машина могла даже «сохранять» промежуточные результаты на еще одном валике. Главная сложность состояла в том, как «перенести» единицу на следующий разряд или «позаимствовать» у него в случае необходимости, как это делаем мы, когда на бумаге с помощью карандаша вычисляем сумму типа 36+19 или разность 42–17. Опираясь на устройства Паскаля, Бэббидж придумал несколько хитроумных приспособлений, которые позволили шестеренкам и валикам выполнять вычисления.

Машина должна была стать настоящим чудом. Бэббидж даже придумал, как заставить ее составить таблицу простых чисел от о до 10 миллионов. На британское правительство это произвело впечатление, по крайней мере вначале. В 1823 году оно предоставило Бэббиджу стартовый капитал в размере 1700 фунтов, но за десятилетие, в течение которого продолжались попытки построить машину, он потратил более 17 тысяч фунтов — в два раза больше стоимости военного корабля. Проект столкнулся с двумя проблемами. Во-первых, Бэббидж и нанятый им инженер не имели достаточной квалификации, чтобы заставить устройство работать. Во-вторых, к этому времени он уже придумал нечто лучшее.

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

Вверху: Копия аналитической машины
Слева: Копия разностной машины
Вытканный на станке Жаккарда портрет Жозефа-Мари Жаккарда
Ткацкий станок Жаккарда

Аналитическая машина была порождена тем, что Ада Лавлейс в своем эссе о воображении назвала «объединяющим даром». Бэббидж собрал все инновации, которые к тому времени появились в других областях, — прием, используемый многими великими изобретателями. Первоначально он использовал металлический барабан, который был усеян шипами для контроля за поворотом валика. Но потом он, как и Ада, внимательно изучил конструкцию автоматического ткацкого станка, изобретенного в 1801 году французом по имени Жозеф-Мари Жаккард, совершившим переворот в шелкоткацкой промышленности. На этих станках рисунок на ткани создавался за счет использования крючков, которые поднимали определенные нити основы, а затем стержень заталкивал уточную нить под основную. Для управления этим процессом Жаккард изобрел метод использования карт с пробитыми в них отверстиями. Положение отверстий определяло, какие крючки и стержни должны менять местами нити основы и утка при каждом шаге плетения, таким образом автоматически создавались замысловатые узоры. Для каждого прохождения челнока, протягивающего нить, использовалась новая перфокарта.