1)Как называется вс алгоритм, который напрямую или через другие вс алгоритмы вызывает сам себя? Линейный
Разветвляющийся
Циклический
Рекурсивный
2)Как называется определения множества объектов через это же множество на основе заданных базовых случаев?
Рекурсия
Прогрессия
Регрессия
3)Выберите ложные утверждения:
Рекурсивные алгоритмы обязательно должны содержать вызов самого себя или другого вс алгоритма.
Рекурсивные алгоритмы работают быстрее итерационных.
Рекурсивные алгоритмы обычно короче и понятнее итерационных.
Программный стек не ограничен.
4)Как называется принцип, согласно которому сложные программы разрабатываются и тестируются по частям. При это такие части программы независимы друг от друга?
5)Как называется область оперативной памяти, в которой хранятся значения параметров и адреса возврата вызываемых функций?
6)Чему будет равно а после исполнения инструкций?
def func (num):
if num < 10:
return num
else:
return func (num % 10 + num % 100 // 10)
a = func (275)
7)Из каких частей состоит рекурсивное определение?
Индуктивная часть
Противоречащие случаи
Инверсная часть
Базовые случаи
8)Какие из приведённых строк кода можно описать на пропущеной позиции в рекурсивной функции вычисления n-ного числа Фибоначчи? Числами Фибоначчи называется числовой ряд, в котором первые два числа равны единице, а все последующие являются суммой двух предыдущих.
def fibo (n):
if n <2:
return 1
else:
fibo (n - 1) + fibo (n - 2)
return fibo (n - 1) + fibo (n - 2)
return fibo ((n - 1) + (n - 2))
return fibo (n - 2) + fibo (n - 1)
9)Как называется принцип, согласно которому описанные модули стоит сохранять и расширять, чтобы не решать снова уже решённую задачу, если она встретиться повторно?
Повторное использование кода
Первичное использование кода
Основное использование кода
10)Что произойдёт при попытке исполнения инструкций?
def rec (n):
if n > 0:
return rec (n % 10)
else:
return n
a = rec (15)
Значение а станет равно 5
Зацикливание
Переполнение программного стека
Значение а станет равно 0
2) Определение множества объектов через это же множество на основе заданных базовых случаев называется рекурсией. Рекурсия позволяет решать задачи путем разбиения их на более простые и подобные части.
3) Ложные утверждения:
- Рекурсивные алгоритмы обязательно должны содержать вызов самого себя или другого вс алгоритма. (Ложное утверждение: не все рекурсивные алгоритмы обязательно вызывают себя)
- Рекурсивные алгоритмы работают быстрее итерационных. (Ложное утверждение: в некоторых случаях рекурсивные алгоритмы могут быть медленнее итерационных)
- Рекурсивные алгоритмы обычно короче и понятнее итерационных. (Ложное утверждение: рекурсивные алгоритмы могут быть сложнее для понимания, особенно для новичков)
- Программный стек не ограничен. (Ложное утверждение: программный стек имеет ограниченный размер, и его переполнение может привести к ошибке)
4) Принцип, согласно которому сложные программы разрабатываются и тестируются по частям, независимыми друг от друга, называется модульной разработкой.
5) Область оперативной памяти, в которой хранятся значения параметров и адреса возврата вызываемых функций, называется стеком вызовов (call stack) или стеком фреймов.
6) После исполнения инструкций значение а будет равно 5. Это произойдет в результате последовательного выполнения инструкций функции func с аргументом 275. При первом выполнении условия `num < 10` функция вернет num (то есть 275). При втором выполнении функция будет вызвана с аргументом `num % 10 + num % 100 // 10`, что равно 5. Таким образом, функция вернет значение 5.
7) Рекурсивное определение состоит из базовых случаев и индуктивной части. Базовые случаи - это простые случаи, когда рекурсия должна завершиться и не вызывать себя. Индуктивная часть - это шаги, которые выполняются рекурсивно для более сложных случаев, основываясь на решении более простых случаев.
8) В рекурсивной функции вычисления n-го числа Фибоначчи пропущенной позиции в строке кода можно описать следующие варианты:
- return fibo (n - 1) + fibo (n - 2)
- return fibo (n - 2) + fibo (n - 1)
Оба варианта эквивалентны и представляют собой вызов рекурсивной функции для нахождения двух предыдущих чисел Фибоначчи.
9) Принцип, согласно которому описанные модули стоит сохранять и расширять, чтобы не решать снова уже решенную задачу при повторном использовании кода, называется повторным использованием кода.
10) При попытке исполнения инструкций значение а станет равным 5. При первом вызове функции rec с аргументом 15, функция будет вызываться рекурсивно с аргументом `n % 10`, пока `n > 0`. В итоге, функция будет вызвана с аргументами 5, 1, 0. При вызове с аргументом 0, функция вернет 0, а затем выполнение рекурсии завершится.