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

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

F(n)  =  n + F(n − 5), если n > 29 999;

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

G(n)  =  10 + n + G(n + 3), если n < 30 000;

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

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

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

Ре­ше­ние.

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

from functools import *

@lru_cache(None)

def F(n):

if n > 29999:

return n + F(n - 5)

if n < 30000:

return n + G(n - 2)

@lru_cache(None)

def G(n):

if n < 30000:

return 10 + n + G(n + 3)

if n > 29999:

return n ** 2

 

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

G(n)

for n in range(1000, 100000):

F(n)

print(F(75000))

 

Ответ: 1372792517.


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