Алгоритмы решения
Скачать 87.92 Kb.
|
Применение уголовного закона по аналогии недопускается. (УК РФ, Ст.3, ч.2) АЛГОРИТМЫ РЕШЕНИЯВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ Приступая к решению любой задачи, человек планирует последовательность действий, выполнение которых приводит к достижению поставленной цели. Подобный план действий называют алгоритмом. В математике имеют дело с вычислительными алгоритмами. Алгоритмом (вычислительным) называется строгое описание эффективной процедуры решения математической задачи. Поясним смысл сказанного примером. Пусть заданы натуральные числа A и B. Требуется найти их наибольший общий делитель (НОД). Древнегреческий математик Евклид в III веке до н.э. составил остроумный алгоритм решения этой задачи. Приведем описание этого алгоритма в современной интерпритации:
Проверим работу этого алгоритма на примере. Пусть A12 и B18. Наши действия по реализации алгоритма сведем в табл.12.1. Как видим, Таблица 12.1
процедура вычислений, порождаемая алгоритмом, представляет собою последовательность шагов. На каждом шаге выполняется тот или иной пункт алгоритма. Перечислим основные требования, которым должны отвечать алгоритмы.
В полной мере этим требованиям отвечает наглядное и, в то же время, строгое представление алгоритма в форме графа на рис. 12.3 показан граф алгоритма Евклида. Сравнив рис12.3с вербальным описанием этого алгоритма, легко убедиться в том, что они практически идентичны. На том или ином шаге вычислений выполняют действия двух типов. Первый тип действий – содержательная обработка информации: задание исходных данных, вычисление значения переменной, (например, Y=YX), фиксация результатов вычислений и т.п. Второй тип действий – анализ результатов, полученных на предыдущих шагах, и выбор дальнейшего пути развития вычислительного процесса (скажем, проверка условия XY и переход по результату проверки на тот или иной пункт алгоритма). В соответствии с этим, для графического представления алгоритмов используем два символа:
0 X=A Y=B 1 XY 1 0 1 2 5 XY 0 Y=YX X=XY 4 3 НОД=X 6 СТОП шестиугольник, внутри которого записывается проверяемое условие. Эти символы называют вершинамиграфа: прямоугольник – операторной вершиной, а шестиугольник – условной вершиной. Вершины графа соединяют дугами (стрелками) в соответствии с логикой развития вычислительного процесса. Операторная вершина может иметь один или несколько входов (к ней подходят одна или несколько стрелок), но у нее должен быть один и только один выход (из нее выходит лишь одна стрелка). Рис.12.3 Условная вершина, как и операторная, может иметь один или несколько входов. Проверяемое условие в момент его проверки может выполняться (да), а может и не выполняться (нет). Поэтому условная вершина имеет два выхода. Один из них отвечает тому направлению хода вычислений, которое имеет место при выполнении записанного в ней условия. Этот выход отмечается символом 1. Второй выход соответствует тому направлению развития вычислительного процесса, которое имеет место, когда условие в шестиугольнике не выполняется. Этот выход отмечается символом 0. Среди операторных вершин две – особые: начальная и конечная. Начальная вершина не имеет входов, конечная вершина не имеет выхода. На рис. 12.3. начальная вершина – прямоугольник с записями X=A; Y=B, а конечная – прямоугольник с записью СТОП. Корректно разработанный граф (тот, который отвечает требованиям конечности и определенности) отличается тем, что:
Для того чтобы в поясняющем тексте можно было сослаться на ту или иную вершину графа, ее снабжают меткой. Обычно в качестве метки используют число, записываемое в разрыв контура вершины. На рис. 12.3 вершины графа отмечены символами, которые отвечают пунктам словесного алгоритма Евклида. |