База ответов ИНТУИТ

Инструменты, алгоритмы и структуры данных

<<- Назад к вопросам

Необходимыми условиями корректно определенного рекурсивного метода является существование у метода ветви без рекурсии и разные контексты у каждого рекурсивного вызова. Рассмотрим метод с циклом:
cicle   do      from Init until Exit loop Body end   end
Заменим его методом
recursive    do Init; loop_eqviv end
с вызовом рекурсивного метода:
loop_eqviv   do      if not Exit then        Body; loop_eqviv     end   end
Какие утверждения справедливы относительно корректности такой замены?

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
у метода loop_eqviv существует не рекурсивная ветвь. Когда выполняется условие выхода, то можно полагать, что выполняется ветвь без рекурсии (пустая в данном случае), завершающая выполнение метода(Верный ответ)
контекст у рекурсивного метода меняется автоматически
контекст каждого вызова будет меняться только при выполнении условий, предполагаемых по умолчанию для этой схемы замены цикла рекурсией:
  • Все модули Init, Exit, Body определены над полями класса - глобальной для метода информацией;
  • Init задает начальный контекст вызова;
  • Каждое выполнение Body изменяет контекст и уменьшает значение варианта метода, гарантируя завершаемость.
  • (Верный ответ)
    такая замена некорректна, поскольку не выполняется необходимое условие изменения контекста при каждом вызове рекурсивного метода
    завершаемость метода cicle гарантирует завершаемость метода loop_eqviv(Верный ответ)
    такая замена некорректна, поскольку не выполняется необходимое условие существования у рекурсивного метода не рекурсивной ветви
    Похожие вопросы
    Какие утверждения справедливы относительно контракта рекурсивного метода? Для рекурсивного метода следует:
    В контракт рекурсивного метода может входить инвариант метода. Какие утверждения справедливы относительно инварианта?
    В контекст рекурсивного метода, дающего решение задачи о Ханойской башне, входят 5 величин - 4 аргумента метода (имена трех башен и число переносимых дисков) и одна локальная переменная. При оптимальной реализации рекурсивного метода достаточно сохранять в записи активации?
    Какие утверждения справедливы относительно выполнения предусловия и постусловия рекурсивного метода?
    В контекст рекурсивного метода, дающего решение задачи о Ханойской башне, входят 5 величин - 4 аргумента метода (имена трех башен и число переносимых дисков) и одна локальная переменная. Сколько величин достаточно сохранять в записи активации при оптимальной реализации рекурсивного метода?
    В контекст рекурсивного метода, дающего решение задачи о Ханойской башне, входят 5 величин - 4 аргумента метода (имена трех башен и число переносимых дисков) и одна локальная переменная. Сколько величин достаточно сохранять в записи активации при оптимальной реализации рекурсивного метода?
    Все рекурсивные вызовы в рекурсивном методе должны отличаться контекстом вызова - это необходимое условие корректно определенного рекурсивного метода. А что определяет контекст вызова?
    При выполнении рекурсивного метода создаются экземпляры метода, каждому из которых требуется информация, характеризующая данный экземпляр. Число экземпляров может быть большим, так, например, в задаче о Ханойской башне при n, равном, двадцати, более миллиона одновременно существующих экземпляров. Какие утверждения справедливы относительно способов представления информации, необходимой экземпляру метода?
    Какие свойства являются необходимыми свойствами корректного рекурсивного метода?
    Какие свойства справедливы для варианта рекурсивного метода