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

