При формулировке любой задачи необходимо определить
исходные данные, которые мы будем называть параметрами задачи.
Например, если мы решаем задачу нахождения корней
квадратного уравнения ax2 + bx + c =
0, то эта задача определяется тремя параметрами - коэффициентами
a, b и c.
Если же мы хотим решить задачу нахождения среднего
арифметического некоторого набора чисел, то параметрами задачи будут
количество чисел и их значения.
Мы хотим научиться решать задачу, сводя ее к
решению подзадач. При таком подходе любая задача может быть
формализована в виде некоторой функции, аргументами которой могут
являться такие величины, как:
-
количество параметров;
-
значения параметров.
Здесь и далее в качестве параметров будут
рассматриваться целые неотрицательные числа.
Как правило, одним из аргументов задачи является
количество параметров задачи. В том случае, когда по значению этого
параметра можно определить конкретные значения других параметров, мы
эти параметры будем опускать. Это обычно делается в случае, когда
параметры заданы таблицей. Например, если нам необходимо найти сумму
первых K элементов таблицы, то для решения
задачи достаточно знать один параметр K, а все
остальные параметры можно выбрать из таблицы.
После того, как задача формализована (представлена)
в виде функции с некоторыми аргументами, определим понятие
подзадачи. Под подзадачей мы будем понимать ту же задачу,
но с меньшим числом параметров или задачу с тем же числом
параметров, но при этом хотя бы один из параметров имеет меньшее
значение.
| Пример #1. |
|
Найти самую тяжелую монету из 10 монет. Для
формализации задачи определим функцию "Самая тяжелая монета",
аргументами которой являются количество монет (10) и масса
каждой из монет. Пока нас не интересует конкретный вид этой
функции, для нас важнейшим фактором является факт, что она
дает правильное решение. Для данной задачи можно рассмотреть 9
подзадач, которые имеют меньшее значение аргументов:
|
|
-
"Самая тяжелая монета" из 1 монеты,
-
"Самая тяжелая монета" из 2 первых монет,
-
"Самая тяжелая монета" из 3 первых монет,
-
...
-
"Самая тяжелая монета" из 9 первых монет.
|
Особо хочется отметить, что под подзадачей не
следует понимать некоторые этапы решения задачи, такие, как
организация ввода и вывода данных, их упорядочивание, и т.д.
Назад