Тема: рекурсивные алгоритмы.
Что нужно знать:
· рекурсия – это приём, позволяющий свести исходную задачу к одной или нескольким более простым задачам того же типа
· чтобы определить рекурсию, нужно задать
o условие остановки рекурсии (базовый случай или несколько базовых случаев)
o рекуррентную формулу
· любую рекурсивную процедуру можно запрограммировать с помощью цикла
· рекурсия позволяет заменить цикл и в некоторых сложных задачах делает решение более понятным, хотя часто менее эффективным
· существуют языки программирования, в которых рекурсия используется как один из основных приемов обработки данных (Lisp, Haskell)
Пример задания:
Алгоритм вычисления значения функции F(n), где n – натуральное число,
задан следующими соотношениями:
F(1) = 1
F(n) = F(n–1) * n, при n > 1
Чему равно значение функции F(5)?
В ответе запишите только натуральное число.
Решение:
1) используя заданную рекуррентную формулу, находим, что
F(5) = F(4) * 5
2) применив формулу еще несколько раз, получаем
F(5) = F(3) * 4 * 5 = F(2) * 3 * 4 * 5 = F(1) * 2 * 3 * 4 * 5
3) мы дошли до базового случая, который останавливает рекурсию, так как определяет значение F(1) = 1
4) окончательно F(5) = 1 * 2 * 3 * 4 * 5 = 120
5) ответ: 120.
Задачи для тренировки[1]:
1) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n–1) * (n + 1), при n > 1
Чему равно значение функции F(5)? В ответе запишите только натуральное число.
2) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n–1) * (n + 2), при n > 1
Чему равно значение функции F(5)? В ответе запишите только натуральное число.
3) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n–1) * (2*n + 1), при n > 1
Чему равно значение функции F(4)? В ответе запишите только натуральное число.
4) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n–1) * (2*n - 1), при n > 1
Чему равно значение функции F(5)? В ответе запишите только натуральное число.
5) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1
F(n) = F(n–1) * (3*n - 2), при n > 1
Чему равно значение функции F(4)? В ответе запишите только натуральное число.
6) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = F(n–1) + F(n-2), при n > 1
Чему равно значение функции F(7)? В ответе запишите только натуральное число.
7) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = 2*F(n–1) + F(n-2), при n > 1
Чему равно значение функции F(6)? В ответе запишите только натуральное число.
8) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = F(n–1) + 2*F(n-2), при n > 1
Чему равно значение функции F(6)? В ответе запишите только натуральное число.
9) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = 3*F(n–1) - F(n-2), при n > 1
Чему равно значение функции F(6)? В ответе запишите только натуральное число.
10) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = F(n–1)*F(n-2)+1, при n > 1
Чему равно значение функции F(6)? В ответе запишите только натуральное число.
11) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(0) = 1, F(1) = 1
F(n) = F(n–1)*F(n-2)+2, при n > 1
Чему равно значение функции F(5)? В ответе запишите только натуральное число.
12) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1, F(2) = 1
F(n) = F(n-2)*n, при n > 2
Чему равно значение функции F(7)? В ответе запишите только натуральное число.
13) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1, F(2) = 1
F(n) = F(n-2)*n + 2, при n > 2
Чему равно значение функции F(8)? В ответе запишите только натуральное число.
14) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1, F(2) = 1
F(n) = F(n-2)*(n-1), при n > 2
Чему равно значение функции F(7)? В ответе запишите только натуральное число.
15) Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1, F(2) = 1
F(n) = F(n-2)*(n-1) + 2, при n > 2
Чему равно значение функции F(8)? В ответе запишите только натуральное число.
[1] Источники заданий:
1. Демонстрационные варианты ЕГЭ 2013 гг.
2. Проверочные работы МИОО.