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

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

 

F(n)  =  F(n – 4) + 4620, если n ≥ 20;

F(n)  =  8 × (G(n – 12) – 21), если n < 20;

G(n)  =  n/⁠4 + 18, если n ≥ 384 242;

G(n)  =  12 + G(n + 41), если n < 384 242.

 

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

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

Ре­ше­ние.

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

from functools import *

def f(n):

if n >= 20:

return f(n-4) + 4620

else:

return 8*(g(n - 12) - 21)

@lru_cache()

def g(n):

if n >= 384242:

return n/4 + 18

else:

return 12 + g(n + 41)

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

g(n)

 

print(f(913))

 

Ответ: 2703082.

 

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

f,g={},{}

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

g[n] = n/4+18 if n >= 384242 else 12+g[n+41]

for n in range(12,1000):

f[n] = f[n-4]+4620 if n >= 20 else 8*(g[n-12]-21)

print(f[913])


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