- Иногда требуется найти не результат работы алгоритма по входным данным, а наоборот, определить входные данные, при которых алгоритм выдаёт определённые значения.
- Задача обратного анализа гораздо сложнее, чем прямая задача, решаемая простой трассировкой программы. В сложных алгоритмах единственным способом решения часто бывает перебор значений параметров.
- В простых алгоритмах нужно вычленить основную конструкцию, на которой основан алгоритм (ветвление, цикл и т. п.), и попытаться записать формулу, которая определяет эту конструкцию (то есть выполнить обратный перевод из программного кода в математическую модель).
Пример. При каких начальных данных результат выполнения программы будет числом 8?
Решение. Суть алгоритма – цикл, где промежуточная переменная n раз умножается на введённую пользователем натуральную переменную a. Математическая модель алгоритма: rez = an. Число 8 является степенью чисел 2 и 8 (и не является степенью других натуральных чисел). Таким образом, возможными исходными параметрами являются два набора чисел (a = 2; n = 3) и (a = 8, n = 1).
Анализ алгоритмов. Определение возможных входных данных, приводящих к данному результату (Паскаль)
Было полезно?
Рекомендуем
Вы учитель или ученик?
Познакомьтесь с нашим образовательным онлайн-сервисом с тысячами интерактивных работ
Учителю
Удобно проводить уроки в классе, назначать работы на дом и анализировать результаты всего класса или конкретных учеников
Ученику
Самостоятельно изучать новые и повторять пройденные темы, готовиться по индивидуальной траектории и оценивать результаты на наглядных графиках