Алгоритмы вычисления значения функций и
где n — целое число, заданы следующими соотношениями:
при
если
при
если
Чему равно значение выражения
Решение. Приведём аналитическое решение Владимира Иванова на языке Python.
Аналитическое решение.
При n=10 G(10)=19, F(10)=G(7)*3, G(7)=7.
Разность G(10)-G(7)=19-7=12.
Например, F(20)=G(17) · 3, F(20)=141, т.е. n-7=13, 13 · 4=52. 52+7=59, 59-12=47, 47 · 3=141.
Т.о., при n>=10 G(n)-G(n-3)=12.
Следовательно, F(43000)=((43000-7) · 4+7-12)*3=515901.
Приведём решение на языке Python.
from functools import *
@lru_cache()
def f(n):
if n <= 7:
return n
else:
return g(n - 3) * 3
@lru_cache()
def g(n):
if n <= 7:
return n
else:
return g(n - 1) + 4
for n in range(43000 + 1):
g(n)
f(n)
print(f(43000))
Ответ: 515 901.
Приведём решение Полины Егрушовой на языке Python.
f=[0]*100000
g=[0]*100000
for n in range (1,len(g)):
if n<=7:
g[n]= n
else:
g[n]=g[n-1]+4
for n in range (1,len(f)):
if n<=7:
f[n]= n
else:
f[n]= g[n-3]*3
print(f[43000])
Приведём решение Юрия Красильникова на языке Python.
g={}
for n in range(43000): g[n] = n if n<= 7 else g[n-1]+4
print(g[43000-3]*3)
PDF-версии: 