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