Иногда аль-Хорезми, кажется, делает ровно то же самое, но, как правило, он подробнее описывает применяемые правила. Так что более глубокая причина того, что именно ему приписывают изобретение алгебры, состоит в том, что он сосредоточился на общих правилах манипулирования алгебраическими выражениями, нежели на конкретных числах, которые они представляют. К примеру, он дает правила раскрытия скобок при их перемножении
(a + bx) (c + dx)
в терминах квадрата x2, корня x и чисел. Мы бы записали это правило символически как
ac + (ad + bc) x + (bd) x2,
и именно это он говорит, словесно, без использования конкретных чисел для a, b, c или d. Он рассказывает читателям, как нужно манипулировать общими выражениями в числах, корнях и квадратах. Эти выражения рассматриваются не как зашифрованные версии какого-то неизвестного числа, но как новый тип математического объекта, выражения с которым можно просчитывать, даже если реальные числа вам неизвестны. Именно этот шаг к абстракции – если мы примем его как таковой – лежит в основе утверждения о том, что аль-Хорезми изобрел алгебру. В «Арифметике» ничего подобного нет.
Другие темы в его книге более прозаичны: там можно найти правила вычисления площадей и объемов таких фигур, как прямоугольник, круг, цилиндр, конус и шар. Здесь аль-Хорезми следует тем же путем, каким двигались математики в индийских и еврейских текстах, и ничего похожего на Архимеда или Евклида вы там не найдете. Заканчивается книга более приземленными вещами: подробным разбором исламских правил наследования имущества, требующих разделения его в разных пропорциях; ничего более сложного с математической точки зрения, чем решение линейных уравнений и арифметика, в этом разделе не встречается.
Важнейшим трудом аль-Хорезми как на момент написания, так и на протяжении еще нескольких столетий была «Книга об индийском счете», давшая нам, как уже отмечалось, слово «алгоритм». Фраза Dixit Algorismi – «Так говорил аль-Хорезми» – была весьма убедительным аргументом в любом математическом диспуте. Учитель сказал: внимайте его словам.
Под индийским счетом подразумеваются, безусловно, ранние варианты десятичной системы записи чисел, в которой любое число может быть записано как последовательность десяти символов – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Как видно из названия книги, аль-Хорезми признавал первенство индийских математиков в этом вопросе, но его влияние в средневековой Европе было настолько велико, что такую систему исчисления стали называть арабской (иногда ее называли еще индо-арабской системой, что тоже несправедливо по отношению к индусам). Основной вклад арабского мира в эту систему – изобретение собственных символов для обозначения цифр, похожих на индийские, но все же отличных от них, а также распространение этой системы записи и побуждение к ее использованию. Символы же для обозначения десяти цифр не раз менялись с течением времени, и разные регионы современного мира до сих пор пользуются разными их вариантами.
Сегодня алгоритм – это пошаговая процедура вычисления какой-то конкретной величины или получения какого-то конкретного результата с гарантией того, что по получении нужного результата процесс остановится. «Пробуй все числа в случайном порядке, пока какое-нибудь не подойдет» – не алгоритм: если в результате будет получен ответ, это верная процедура, но с тем же успехом процесс может продолжаться вечно и ни к чему не привести. Чтобы описать один из ранних примеров алгоритма, вспомним, что простое число не имеет других делителей, кроме его самого и единицы. Вот первые несколько простых чисел: 2, 3, 5, 7, 11, 13. Любое другое натуральное число больше 1 называется составным. К примеру, 6 – составное число, потому что 6 = 2 × 3. Число 1 считается особым и называется единицей в этом контексте. Решето Эратосфена, придуманное около 250 г. до н. э., представляет собой алгоритм нахождения всех простых чисел вплоть до какого-то конкретного предела. Начните с того, что выпишите все положительные целые числа вплоть до заданного предела. Удалите из списка все числа, кратные 2, кроме 2, затем все числа, кратные следующему оставшемуся числу 3, кроме самого числа 3, затем проделайте то же самое для следующего уцелевшего числа 5 и т. д. После числа шагов, не превышающего заданного предела, процесс завершается: в списке остается ровно то, что нужно: все простые числа до заданного предела.