Результативность алгоритма
Результативность алгоритма — это его способность за конечное число шагов получить предусмотренный результат либо сообщить, что решение задачи невозможно. Иными словами, выполнение алгоритма не должно завершаться без ответа.
Результат может быть разным: число, текст, найденный объект, изменённые значения переменных или сообщение о невозможности решения. Например, алгоритм поиска наибольшего общего делителя должен вывести сам делитель. Если задача требует найти объект, которого нет среди входных данных, алгоритм должен сообщить об отсутствии объекта, а не просто остановиться.
Результативность рассматривают среди других свойств алгоритма. Она связана с конечностью алгоритма, но не совпадает с ней: конечность означает, что выполнение когда-нибудь завершится, а результативность — что завершение даёт осмысленный ответ или корректное сообщение о невозможности.
Алгоритм решения линейного уравнения \(ax=b\) проверяет значение \(a\). При \(a\ne0\) он вычисляет \(x=\frac{b}{a}\). При \(a=0\) и \(b\ne0\) сообщает, что решений нет. При \(a=0\) и \(b=0\) сообщает, что решений бесконечно много. Во всех случаях алгоритм выдаёт результат.
Какой алгоритм обладает результативностью?
Результативность не означает, что ответ обязательно существует. Корректное сообщение «решение отсутствует» тоже является результатом. Также нельзя считать алгоритм результативным только потому, что он завершился: нужно проверить, выдан ли предусмотренный ответ.
Главное
- Результативный алгоритм получает ответ или сообщает о невозможности решения.
- Результат может быть числом, объектом, изменёнными данными или специальным сообщением.
- Конечность — завершение выполнения, а результативность — получение осмысленного итога.