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

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

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

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

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

3.  Умно­жить на 3.

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

2, тре­тья умно­жа­ет его на 3. Про­грам­ма для ис­пол­ни­те­ля Ал­ле­гро  — это по­сле­до­ва­тель­ность ко­манд.

Сколь­ко су­ще­ству­ет про­грамм, для ко­то­рых при ис­ход­ном числе 3 ре­зуль­та­том яв­ля­ет­ся число 18 и при этом тра­ек­то­рия вы­чис­ле­ний со­дер­жит число 8, но не со­дер­жит число 13?

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

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

Ре­ше­ние.

Нужно найти ко­ли­че­ство про­грамм, ко­то­рые из 3 по­лу­ча­ют 8, ко­ли­че­ство про­грамм, ко­то­рые из 8 по­лу­ча­ют 18, но не про­хо­дит через 13 и пе­ре­мно­жить най­ден­ные зна­че­ния. Сна­ча­ла найдём ко­ли­че­ство про­грамм, по­лу­ча­ю­щих 8 из 3.

 

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

def f(x, y):

if x > y or x == 13:

return 0

if x == y:

return 1

else:

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

print(f(3, 8) * f(8, 18))

 

Ответ: 200.

 

При­ведём ре­ше­ние Ев­ге­ния Дж­об­са (гра­фи­че­ское).

Изоб­ра­зим в виде графа, как можно прий­ти в опре­де­лен­ные числа. И по­счи­та­ем ко­ли­че­ство вы­чис­ли­тель­ных стра­те­гий до каж­дой вер­ши­ны из на­чаль­ной.


Аналоги к заданию № 55819: 35481 35912 37158 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 06.04.2023. До­сроч­ная волна