Задания
Версия для печати и копирования в MS Word
Тип 16 № 85729
i

Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ций F(n) и G(n), где n  — целое число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

 

F(n)  =  F(n – 5) + 5580, если n ≥ 25;

F(n)  =  12 × (G(n – 11) – 14), если n < 25;

G(n)  =  n/⁠6 + 34, если n ≥ 395 881;

G(n)  =  13 + G(n + 39), если n < 395 881.

 

Чему равно зна­че­ние функ­ции F(937)?

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

from functools import *

def f(n):

if n >= 25:

return f(n-5) + 5580

else:

return 12*(g(n - 11) - 14)

@lru_cache()

def g(n):

if n >= 395881:

return n/6 + 34

else:

return 13 + g(n + 39)

for n in range(400000,1,-1):

g(n)

 

print(f(937))

 

Ответ: 3396736.

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

f,g={},{}

for n in range(400000,-1,-1):

g[n] = n/6+34 if n >= 395881 else 13+g[n+39]

for n in range(12,1000):

f[n] = f[n-5]+5580 if n >= 25 else 12*(g[n-11]-14)

print(f[937])


Аналоги к заданию № 85692: 85729 Все