В 820 году появилась работа «Аль-Джабр Ва-аль-Мукабала» Ее автором был великий ученый Средневековья аль-Хорезми, проживавший и работавший на территории современного Узбекистана.
От названия этой работы берет начало привычное слово «алгебра». Имя автора в латинском переводе выглядело как Algorizmi или Algorizmus, откуда и возник термин «алгоритм». Его работы отвечают на такой вопрос как что такое алгоритм?
Жизненные задачи, которые приводят к понятию алгоритма
Все люди в своей жизни сталкиваются с разнообразными задачами,требующими решения. Это могут быть сложные проблемы, решить которые сразу не получится. А могут быть совсем простые действия, настолько привычные, что даже и не рассматриваются как задачи.
К сложным заданиям можно отнести:
— изучение английского языка;
— проектирование робота;
— строительство подводной лодки;
— полет человека на Марс.
Примеры простейших бытовых заданий, с которыми даже ребенок справляется автоматически:
— почистить зубы;
— купить конфеты;
— помыть яблоко;
— расчесать волосы.
Подобных задач можно привести великое множество, но всех их можно решить, выполняя определенное количество простейших шагов. Например, решение задачи «Купить интересную книгу» можно представить в таком виде:
— попросить у родителей деньги;
— сходить в книжный магазин;
— ознакомиться с ассортиментом;
— выбрать понравившуюся книгу;
— заплатить за покупку;
— принести книгу домой.
Полученное руководство иллюстрирует, в каком порядке нужно выполнять действия, чтобы добиться желаемого результата.
Последовательность действий
К пошаговому выполнению можно свести решение многих школьных задач и не только математических:
— измерить угол транспортиром;
— начертить квадрат;
— посчитать периметр прямоугольника;
— найти часть речи;
— нарисовать дом;
— провести морфологический разбор слова.
Для успешного решения подобных задач важно учесть два фактора: безошибочность выполнения каждого действия и точное соблюдение порядка выполнения шагов.
Рассмотрим это на примере нахождения значения арифметического выражения 3+2*5:
1. найти произведение чисел 2 и 5;
2. найти сумму слагаемых.
Как видим, порядок выполнения действий определяется приоритетом математических операций. Если в этой последовательности поменять шаги местами, решить пример правильно уже не удастся.
Понятие алгоритма
Для каждой задачи есть своя процедура, своеобразный «рецепт» решения, который однозначно указывает, как и в какой очередности совершать действия.
Таким образом, мы интуитивно подходим к понятию алгоритма.
Алгоритм ? набор инструкций, которые описывают порядок действий выполнителя для решения поставленной задачи за конечное количество шагов.
Обязательные условия ? четкая постановка исходных данных и желаемого результата. Разрабатывают алгоритмы люди, а вот выполнять их могут, как сами люди, так и различные механизмы, например компьютеры.
Свойства алгоритмов
Массовость ? алгоритмы, чаще всего разрабатываются не для решения одной задачи (хотя бывают исключения), а для целого класса подобных задач.
Детерминированность (однозначность) ? при применении алгоритма к одинаковым исходным данным должен быть одинаковый результат.
Результативность ? выполнение алгоритма обязательно должно приводить к завершению и получению определенного результата.
Конечность ? последовательность шагов алгоритма не может быть бесконечной.
Корректность ? при использовании алгоритма для всех допустимых данных, он всегда должен давать правильный результат.
Дополнительные сведения
1. Ежедневно мы имеем дело с обилием алгоритмов: кулинарные рецепты, инструкции к бытовой технике, режим дня, расписание школьных уроков, решение математических задач и т.д.
2. Самому древнему записанному алгоритмом, сохранившемуся до наших дней на глиняной табличке, более 3800 лет. Примерно в 1800 году до н.э. в Вавилоне было записано решение задачи, в которой требовалось найти время на удвоение заданного количества зерна при годовом приросте в 20%. Этот древний алгоритм находится в основе банковских расчетов.
3. В III веке до н.э. Евклид в своем трактате «Начала» описал алгоритм, который и сегодня используют для нахождения наибольшего общего делителя двух чисел.