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

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

F левая круг­лая скоб­ка n пра­вая круг­лая скоб­ка =1 при n мень­ше 3;

F левая круг­лая скоб­ка n пра­вая круг­лая скоб­ка =F левая круг­лая скоб­ка n минус 1 пра­вая круг­лая скоб­ка плюс 3 умно­жить на F левая круг­лая скоб­ка n минус 2 пра­вая круг­лая скоб­ка , если n боль­ше 2 и при этом n нечётно;

F левая круг­лая скоб­ка n пра­вая круг­лая скоб­ка =\sum_i=1 в сте­пе­ни левая круг­лая скоб­ка n минус 1 пра­вая круг­лая скоб­ка F левая круг­лая скоб­ка i пра­вая круг­лая скоб­ка , если n боль­ше 2 и при этом n чётно.

 

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

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

Ре­ше­ние.

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

def F(n):

if n < 3:

return 1

if n > 2 and n % 2 != 0:

return F(n-1)+3*F(n-2)

if n > 2 and n % 2 == 0:

return sum(F(i) for i in range (1,n))

print(F(28))

 

Ответ: 814893696.

 

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

F = [0] * 29

F[1] = F[2] = 1

for n in range(3,29):

if n % 2 != 0:

F[n] = F[n-1]+3*F[n-2]

else:

F[n] = sum(F[1:n])

print(F[28])