Задания
Версия для печати и копирования в MS WordАлгоритм вычисления значения функции F(n) и G(n), где n — целое число, задан следующими соотношениями:
F(n) = n + F(n − 6), если n > 19 999;
F(n) = n + G(n − 3), если n < 20 000;
G(n) = 20 + n + G(n + 4), если n < 20 000;
G(n) = n2, если n > 19 999.
Чему равно значение функции F(65 000)?
Решение.
Приведём решение на языке Python.
from functools import *
@lru_cache(None)
def F(n):
if n > 19999:
return n + F(n - 6)
if n < 20000:
return n + G(n - 3)
@lru_cache(None)
def G(n):
if n < 20000:
return 20 + n + G(n + 4)
if n > 19999:
return n ** 2
for n in range(100000, 0, -1):
G(n)
for n in range(1000, 100000):
F(n)
print(F(65000))
Ответ: 718992548.

