''' Пример 16.1. Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями: F(n) = 2 при n = 1 F(n) = F(n − 1) + 3*n**2; если n > 1 Чему равно значение функции F(19)? Рекуррентные формулы: x^5 = x^4 * x 5! = 4!*5 Для решения этого номера будем использовать 2 способа: 1) рекурсия -- функция вызывает саму себя 2) использование списков (будет позже) --------------------------------- 3) итеративное решение (не для экзамена) Идея рекурсии: Прямой ход рекурсии F(4) = F(3) + 3*4**2 F(3) = F(2) + 3*3**2 F(2) = F(1) + 3*2**2 F(1) = 2 | | |F(1)| |F(2)| |F(3)| |F(4)| Обратный ход рекурсии F(4) = F(3) + 3*4**2 = 41 + 48 = 89 F(3) = F(2) + 3*3**2 = 14 + 27 = 41 F(2) = F(1) + 3*2**2 = 2 + 12 = 14 F(1) = 2 | | | | | | | | |F(4)| F(n) = 2 при n = 1 F(n) = F(n − 1) + 3*n**2; если n > 1 Чему равно значение функции F(19)? n n < 1 1 n > 1 ''' def F(n): # заголовок функции; F - имя функции; n - параметр if n == 1: # при n = 1 return 2 # F(n) = 2 return F(n-1) + 3*n**2 res = F(19) # result print(res) # 7409 ok