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

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

F(n)  =  n + F(n − 6), если n > 19 999;

F(n)  =  n + G(n − 3), если n < 20 000;

G(n)  =  20 + n + G(n + 4), если n < 20 000;

G(n)  =  n2, если n > 19 999.

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

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

Ре­ше­ние.

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

from functools import *

@lru_cache(None)

def F(n):

if n > 19999:

return n + F(n - 6)

if n < 20000:

return n + G(n - 3)

@lru_cache(None)

def G(n):

if n < 20000:

return 20 + n + G(n + 4)

if n > 19999:

return n ** 2

 

for n in range(100000, 0, -1):

G(n)

for n in range(1000, 100000):

F(n)

print(F(65000))

 

 

 

Ответ: 718992548.


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