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

Ис­пол­ни­тель Уве­ли­чи­тель145 пре­об­ра­зу­ет число, за­пи­сан­ное на экра­не. У ис­пол­ни­те­ля три ко­ман­ды, ко­то­рым при­сво­е­ны но­ме­ра:

1.  При­бавь 1

2.  При­бавь 4

3.  При­бавь 5

Пер­вая из них уве­ли­чи­ва­ет число на экра­не на 1, вто­рая уве­ли­чи­ва­ет это число на 4, а тре­тья  — на 5. Про­грам­ма для ис­пол­ни­те­ля Уве­ли­чи­тель145  — это по­сле­до­ва­тель­ность ко­манд. Сколь­ко есть про­грамм, ко­то­рые число 30 пре­об­ра­зу­ют в число 46?

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

Ре­ше­ние.

Для сло­же­ния спра­вед­лив пе­ре­ме­сти­тель­ный (ком­му­та­тив­ный) закон, зна­чит, по­ря­док ко­манд в про­грам­ме не имеет зна­че­ния для ре­зуль­та­та.

Все ко­ман­ды уве­ли­чи­ва­ют ис­ход­ное число, по­это­му ко­ли­че­ство ко­манд не может пре­вос­хо­дить (46 − 30) = 16. При этом ми­ни­маль­ное ко­ли­че­ство ко­манд  — 4.

Таким об­ра­зом, ко­манд может быть 4, 5, 6, ... или 16. По­ря­док ко­манд не имеет зна­че­ния, каж­до­му числу ко­манд со­от­вет­ству­ет один набор ко­манд, ко­то­рые можно рас­по­ло­жить в любом по­ряд­ке.

Рас­смот­рим все воз­мож­ные на­бо­ры и вы­чис­лим ко­ли­че­ство ва­ри­ан­тов расспо­ло­же­ния ко­манд в них.

Набор 11 ... 1111 имеет один воз­мож­ный ва­ри­ант.

Набор 11 ... 2  — 13 ва­ри­ан­тов.

Набор 221111 1111  — 45 воз­мож­ных ва­ри­ан­тов рас­по­ло­же­ния: это число пе­ре­ста­но­вок с по­вто­ре­ни­я­ми 10!/(8!·2!).

Набор 222 1111  — 35 ва­ри­ан­тов.

Набор 2222  — 1 ва­ри­ант.

Набор 3331  — 4 ва­ри­ан­та.

Набор 33111 111  — 28 ва­ри­ан­тов.

Набор 311...11  — 12 ва­ри­ан­тов.

Набор 322111  — 60 ва­ри­ан­тов.

Набор 32311  — 30 ва­ри­ан­тов.

Набор 321111111  — 72 ва­ри­ан­та.

 

Всего имеем: 1 + 13 + 45 + 35 + 1 + 4 + 32 + 12 + 60 + 30 + 72 = 301 про­грам­ма.

 

Ответ: 301.

 

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

def f(x, y):

if x > y:

return 0

if x == y:

return 1

else:

return f(x + 1, y) + f(x + 4, y) + f(x + 5, y)

print(f(30, 46))


Аналоги к заданию № 8670: 7466 7679 7706 ... Все

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