Возвращаясь к напечатанному
50
Возвращаясь к напечатанному
Редакция получила несколько писем, указавших на «ошибки в алгоритмах», которые читатели увидели в статье В. А. Каймина («Квант», № 10, с. 47). Это дает нам повод остановиться на важном вопросе: какие алгоритмы считать правильными?
Алгоритм называем правильным, если он формирует результаты, строго в соответствии с требованиями (постановки задачи или описания сценария) при любых допустимых исходных данных. Соответственно — алгоритм содержит ошибки, если можно указать такие допустимые исходные данные, при которых будет получен результат, не отвечающий заданным требованиям; либо вовсе не будет получены результаты. При отсутствии четкой постановки задачи готовить о наличии ошибок в алгоритмах или программах не имеет смысла.
Пример неправильного алгоритма действительное можно найти в упомянутой статье: к сожалению, в алгоритме подсчета площади кольца (с. 48) после строки пропущена строка . В связи с этим редакция принoit читательам свои извинения.
Другое дело — алгоритм приближенного решения
уравнения (метод поовинного деления, с. 50). В статье (из-за ограниченности объема) не приводится постановка задачи, поэтому формально ставить вопрос о правильности этого алгоритма неправомерно. Отметим, однако, что в авторской постановке было:
Требе: — приближенное решение;
Связь: ,
,
.
Для этой постановки приведенный алгоритм — правильный. Можно, конечно, ставить задачу иначе, например требовать , и тогда нужен другой алгоритм. Какая постановка лучше — это уже другой, чисто математический вопрос.