Алгоритм вычисления значения функций F(n) и G(n), где n — целое число, задан следующими соотношениями:
F(n) = n × F(n – 1), если n ≥ 14;
F(n) = 8 × G(n – 3), если n < 14;
G(n) = 4, если n < 31;
G(n) = n / 2 × G(n − 2), если n ≥ 31.
Чему равно значение выражения F(320726) / G(641450)?
Найдем значение F(320726):
F(320726) = 320726 · F(320725)=320726· 320725· F(320724)=...=320726· 320725· ...· 14· F(13)=320726· 320725· ...· 14· 8· G(10)=320726· 320725· ...· 14· 8· 4
Найдем значение G(641450):
G(32) =
G(34) =
G(641450) =
Значение выражения F(320726) / G(641450) равно:
Ответ: 538819680.
Приведём решение Бориса Савельева на языке Python.
Значения больше F(16) и G(32) взаимно сокращаются.
def F(n):
if n >= 14:
return n * F(n - 1)
else:
return 8 * G(n - 3)
def G(n):
if n < 31:
return 4
else:
return n/2 * G(n - 2)
print(320726*(F(16)/G(32)))

