Понятие алгоритма

 

 

Понятие «алгоритм» является одним из основных понятий информатики и математики. Название алгоритм происходит от Algorithmi – латинской формы написания имени великого учёного средневекового Востока Мухаммеда ибн Мусса Аль Хорезми. Его годы жизни приблизительно с 783 по 850 гг. Он сформулировал правила выполнения арифметических действий над многозначными числами.

Что же будем понимать под алгоритмом?

Задача 1. Даны два натуральных числа[1] a и b. Напишите алгоритм нахождения НОД(a, b) – наибольшего общего делителя a и b.

Решение. a и b – входные данные задачи. По существу, мы имеем не одну задачу, а бесконечное множество однотипных задач, столько, сколько существует различных пар натуральных чисел (a; b). Возникает вопрос: существует ли общий метод, позволяющий для любой частной задачи, получаемой подстановкой вместо a и b конкретной пары натуральных чисел, за конечное число шагов определить НОД(a, b).

Для решения задачи необходимо иметь последовательность каких-то действий над входными данными и результатами предыдущих действий, если такие уже имеются, позволяющих найти НОД(a, b). Желательно, чтобы набор этих действий был невелик и в то же время достаточен для нахождения наибольшего общего делителя для любых a, bÎN. Тогда должно существовать нечто такое, обозначим его «А», что после каждого действия оно должно указывать, что делать дальше: либо окончить процесс и указать результат, либо перейти к выполнению следующего определенного действия.

Вот это «А» и принято называть алгоритмом.

Для решения поставленной задачи выберем бездумного исполнителя, в систему команд которого входят команды: найди частное от деления двух натуральных чисел, найди остаток от деления двух натуральных чисел, сравни два натуральных числа и выбери большее или меньшее из них, присвой значения переменным.

Алгоритмом решения поставленной задачи для выбранного исполнителя является, например, алгоритм Евклида.

Шаг 1. Сравни два числа a и b. Обозначь большее число через r, а меньшее через r1. Найди остаток r2 от деления r на r1. Сравни r2 с нулем, если r2 равно нулю, то НОД(a, b) присвой значение r1 и иди на шаг 3, иначе иди на шаг 2.

Шаг 2. Переменной r присвой значение r1, а r1 – значение r2. Найди остаток от деления r на r1 и обозначь его r2. Сравни r2 с нулем, если r2 равно нулю, то НОД(a, b) присвой значение r1 и иди на шаг 3, иначе иди на шаг 2.

Шаг 3. Процесс вычисления НОД(a, b) закончи.

Возникает вопрос: всегда ли описанный процесс заканчивается, т.е. всегда ли за конечное число шагов получим нулевой остаток? Легко доказать, что процесс последовательного деления конечен. Любой из остатков является неотрицательным целым числом, и последовательность остатков монотонно убывает. Следовательно, последовательность конечна и последний остаток равен нулю.

Под алгоритмом будем понимать понятное и точное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.[2]








Дата добавления: 2015-01-26; просмотров: 1686;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.