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

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

 

1.  при­бавь 1,

2.  умножь на 2.

 

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

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

Сколь­ко есть про­грамм, ко­то­рые число 3 пре­об­ра­зу­ют в число 23?

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

Ре­ше­ние.

По­стро­им пол­ное де­ре­во ре­ше­ний и под­счи­та­ем ко­ли­че­ство ва­ри­ан­тов. Рас­смот­рим сна­ча­ла ветвь, где пер­вая ко­ман­да умно­же­ние:

 

1)  3 → 6 → 12 → 13 → ... → 23

2)  6 → 7 → 14 → ... → 23

3)  7 → 8 → 16 → ... → 23

4)  8 → 9 → 18 → ... → 23

5)  9 → 10 → 20 → ... → 23

6)  10 → 11 → 22 → ...23

7)  11 → 12 → ... → 23

 

Те­перь рас­смот­рим ветвь, где пер­вая ко­ман­да сло­же­ние, вто­рая умно­же­ние:

8)  3 → 4 → 8 → 16 → ... → 23

9)  8 → 9 → 18 → ... → 23

10) 9 → 10 → 20 → ... → 23

11) 10 → 11 → 22 → ...23

12) 11 → 12 → ... → 23

 

Ветвь, где пер­вая и вто­рая ко­ман­да сло­же­ние:

13) 3 → 4 → 5 → 10 → 20 → ... → 23

14) 10 → 11 → 22 → .. → 23

15) 11 → 12 → ... → 23

 

Пер­вые три и более ко­манд сло­же­ние:

16) 3 → 4 → 5 → 6 → 12 → ... → 23

 

Ещё 6 про­грамм будут иметь такой же конец, как про­грам­мы 2  — 7.

 

Всего 22 про­грам­мы.

 

Ответ: 22.

 

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

def f(x, y):

if x == y:

return 1

if x > y:

return 0

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

print(f(3, 23))

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2013 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: 1.6.2 Вы­чис­ли­мость. Эк­ви­ва­лент­ность ал­го­рит­ми­че­ских мо­де­лей