Просмотр содержимого документа
«Презентация по информатике "РЕКУРСИВНЫЕ АЛГОРИТМЫ" (задание № 16 - подготовка к КЕГЭ)»
РЕКУРСИВНЫЕ АЛГОРИТМЫ
Задание № 16 ЕГЭ информатика
Рекурсия — это техника в программировании, при которой функция вызывает сама себя для решения подзадачи, которая является частью исходной задачи.
def
Функция ( def ) в Python — это фрагмент кода, который выполняет определённые операции и отдаёт результат.
Его можно написать один раз и переиспользовать во всей программе.
return() завершает вызов функции и возвращает результат вызывающей стороне. Это ключевой компонент любой функции или метода в коде, который включает в себя ключевое слово return и значение, которое будет возвращено после этого.
- Код после return() не выполняется
- return() не может быть использован вне функции
- Если return() не содержит никакого выражения, то возвращается значение None .
def func_name () :
...
return [ expression ]
2: return f(n-1) * n + f(n-2) * (n-1) print(f(5)) Ответ: 309 " width="640"
№ 1
def f(n):
if n == 1:
return 1
if n == 2:
return 3
if n 2:
return f(n-1) * n + f(n-2) * (n-1)
print(f(5))
Ответ: 309
1 and n % 2 != 0: return 2 * f(n-2) print(f(26)) Ответ: 4122 " width="640"
№ 2
def f(n):
if n == 1:
return 1
if n % 2 == 0:
return n + f(n-1)
if n1 and n % 2 != 0:
return 2 * f(n-2)
print(f(26))
Ответ: 4122
По умолчанию глубина рекурсии в языке Питон ограничена 1000 вызовов. Это ограничение можно поднять при помощи функции setrecursionlimit из модуля system. Например, чтобы увеличить возможную глубину рекурсии до 10000 нужно в начале программы выполнить две инструкции:
from sys import*
setrecursionlimit(10000)
2024: return n if n return n*f(n+1) print(f(2022)/f(2024)) Ответ: 4090506 " width="640"
№ 3 (демо 2024)
С помощью Excel
from sys import*
setrecursionlimit(10000)
def f(n):
if n2024:
return n
if n
return n*f(n+1)
print(f(2022)/f(2024))
Ответ: 4090506
=7: return n+1+f(n-2) print(f(2024)-f(2020)) Ответ: 4048 " width="640"
№ 4
С помощью Excel
from sys import*
setrecursionlimit(10000)
def f(n):
if n
return 7
if n=7:
return n+1+f(n-2)
print(f(2024)-f(2020))
Ответ: 4048
1:return f(n-1)-2*g(n-1) def g(n): if n==1:return 1 if n1:return f(n-1)+2*g(n-1) print (g(21)) Ответ: 802165 " width="640"
№ 5
С помощью Excel
def f(n):
if n==1:return 1
if n1:return f(n-1)-2*g(n-1)
def g(n):
if n==1:return 1
if n1:return f(n-1)+2*g(n-1)
print (g(21))
Ответ: 802165
3 and n%3==0: return f(n/3)+4*n if n3 and n%3!=0: return n*n*n-26 for n in range (1,10000): if f(n) print (n) Ответ: 36 " width="640"
№ 6
def f(n):
if n
if n3 and n%3==0: return f(n/3)+4*n
if n3 and n%3!=0: return n*n*n-26
for n in range (1,10000):
if f(n)
print (n)
Ответ: 36