Алгоритм — это способ автоматизации вычислений, который позволяет получить определенный результат на основе исходных данных и посредством выполнения действий в заданном порядке за конечное число этапов. Следовательно, алгоритм позволяет решить не одну конкретную задачу, а целый ряд задач одного класса, то есть задач с похожими условиями, вне зависимости от исходных данных. На бытовом уровне алгоритмом можно считать формулу. Таким образом, алгоритм — это математический инструмент, но само его определение подсказывает, почему алгоритмы стали основой информатики.
Алгоритмы управляют работой окружающих нас электронных устройств, благодаря которым становится возможным существование нашего удивительного цифрового мира. По сути, компьютерная программа — не более чем алгоритм, составленный на языке, понятном компьютеру. Однако царствование алгоритмов в вычислительной технике — лишь краткий эпизод долгой и интересной истории, которая началась тогда, когда зародились вычисления.
Вычисления и технологии связаны между собой с древних времен. Вычислительные инструменты всегда были продуктом технологий и способов счисления, которые использовались в тех или иных культурах в тот или иной период. Древнеегипетские методы вычислений и римские устройства для счета, например абак, подчинялись правилам вычислений, которые были приняты в этих культурах. Это влияние было взаимным: римская система счисления сохранилась вплоть до Средних веков благодаря широкому применению абака. Аналогичным образом использование бумаги способствовало распространению арабских цифр. Венцом этой эволюции являются информатика и компьютеры, которые создавались с одной целью: разработать всё более и более мощные устройства для выполнения всё более и более сложных вычислений.
Число 71 прекрасно иллюстрирует эволюцию вычислений и их взаимосвязь с технологиями. Еще в Месопотамии и Древнем Египте предпринимались попытки вычислить 71 с помощью доступных в то время приспособлений. Были получены удивительные результаты: уже Архимед в III веке до н. э. рассчитал приближенное значение 71 с невероятно малой погрешностью в 0,002. С развитием информатики вычислялись всё новые и новые знаки 71: в настоящее время известно несколько триллионов знаков этого числа. Были созданы алгоритмы, позволяющие вычислить любой отдельный знак числа 71.
В этой книге рассказывается история алгоритмов и вычислений, а также описываются важнейшие особенности вычислений и вычислительной техники, начиная от первых счетных палочек и заканчивая компьютерами, без которых невозможно представить современный мир. Эта удивительная история помогает нам понять, почему мир, в котором мы живем, выглядит именно так.