Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
{F(n)= 0} при n ≤ 1;
F(n)=F(n - 1)+ , если n > 1 и нечетно.
F(n)=n/2+F(n - 1) + 2 , если n > 1 и четно.
Чему равно значение выражения F(49) ?
Решение:
Решение на Python:
from functools import lru_cache
@lru_cache (None)
#Создаем функцию F(n)
def F(n):
if n <= 1: return 0
if n > 1 and n % 2 != 0:
return F(n - 1) + 3*n**2
if n > 1 and n % 2 == 0:
return n // 2 + F(n - 1) + 2
#Чтобы сохранить все вычисления в Iru_cache, создаем перебор
#И доабвляем в него наши функции
for i in range(10000):
F(i)
print(F(49))
Ответ: 62820
Ответ:
62820