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

Ис­пол­ни­тель Уве­ли­чи­тель пре­об­ра­зу­ет число на экра­не.

У ис­пол­ни­те­ля есть две ко­ман­ды, ко­то­рым при­сво­е­ны но­ме­ра:

1. При­ба­вить 1

2. При­ба­вить 3

Пер­вая ко­ман­да уве­ли­чи­ва­ет число на экра­не на 1, вто­рая  — на 3.

Про­грам­ма для ис­пол­ни­те­ля Уве­ли­чи­тель  — это по­сле­до­ва­тель­ность ко­манд.

Сколь­ко су­ще­ству­ет про­грамм, для ко­то­рых при ис­ход­ном числе 1 ре­зуль­та­том яв­ля­ет­ся число 15 и при этом тра­ек­то­рия вы­чис­ле­ний со­дер­жит число 10 и не со­дер­жит число 12?

Тра­ек­то­рия вы­чис­ле­ний про­грам­мы  — это по­сле­до­ва­тель­ность ре­зуль­та­тов вы­пол­не­ния всех ко­манд про­грам­мы. На­при­мер, для про­грам­мы 112 при ис­ход­ном числе 5 тра­ек­то­рия будет со­сто­ять из чисел 6, 7, 10.

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

Ре­ше­ние.

Пусть R(n)  — ко­ли­че­ство про­грамм, ко­то­рые число 1 пре­об­ра­зу­ют в число n.

Тогда спра­вед­ли­ва сле­ду­ю­щая фор­му­ла: R(n) = R(n - 1) + R(n - 3).

С её по­мо­щью по­сле­до­ва­тель­но вы­чис­лим зна­че­ния R(n):

 

R(1) = 1

R(2) = R(1) + R(-1) = 1 + 0 = 1

R(3) = R(2) + R(0) = 1 + 0 = 1

R(4) = R(3) + R(1) = 1 + 1 = 2

R(5) = R(4) + R(2) = 2 + 1 = 3

R(6) = R(5) + R(3) = 3 + 1 = 4

R(7) = R(6) + R(4) = 4 + 2 = 6

R(8) = R(7) + R(5) = 6 + 3 = 9

R(9) = R(8) + R(6) = 9 + 4 = 13

R(10) = R(9) + R(7) = 13 + 6 = 19

 

Так как в тра­ек­то­рии долж­но при­сут­ство­вать число 10, то для всех сле­ду­ю­щих R(n) нель­зя ис­поль­зо­вать при пе­ре­счёте R(m) такие, что m < 10.

 

R(11) = R(10) = 19

 

Число 12 на­о­бо­рот, не долж­но встре­чать­ся в тра­ек­то­рии, по­это­му не будем счи­тать R(12), а все сле­ду­ю­щие R(n) будем пе­ре­счи­ты­вать без R(12).

 

R(13) = R(10) = 19

R(14) = R(13) + R(11) = 19 + 19 = 38

R(15) = R(14) = 38

 

Ответ: 38.

 

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

def f(x, y):

if x > y or x == 12:

return 0

if x == y:

return 1

else:

return f(x + 1, y) + f(x + 3, y)

print(f(1, 10) * f(10, 15))


Аналоги к заданию № 4944: 4985 5497 5753 ... Все

Раздел кодификатора ФИПИ: 1.6.2 Вы­чис­ли­мость. Эк­ви­ва­лент­ность ал­го­рит­ми­че­ских мо­де­лей