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

Ис­пол­ни­тель А22 пре­об­ра­зу­ет целое число, за­пи­сан­ное на экра­не. У ис­пол­ни­те­ля три ко­ман­ды, каж­дой ко­ман­де при­сво­ен номер.

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

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

3.  При­бавь преды­ду­щее.

Пер­вая ко­ман­да уве­ли­чи­ва­ет число на экра­не на 1, вто­рая уве­ли­чи­ва­ет это число на 2, тре­тья при­бав­ля­ет к числу на экра­не число, мень­шее на 1 (к числу 3 при­бав­ля­ет­ся 2, к числу 11 при­бав­ля­ет­ся 10 и так далее). Про­грам­ма для ис­пол­ни­те­ля А22  — это по­сле­до­ва­тель­ность ко­манд. Сколь­ко су­ще­ству­ет про­грамм, ко­то­рые число 2 пре­об­ра­зу­ют в число 9?

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

Ре­ше­ние.

Обо­зна­чим число про­грамм, пре­об­ра­зу­ю­щих число 2 в число N, как КN. Тогда число N может быть по­лу­че­но при­бав­ле­ни­ем либо еди­ни­цы к N − 1, либо двой­ки к N − 2, либо из не­ко­то­ро­го числа X уве­ли­че­ни­ем на X − 1 (преды­ду­щее число), так что N  =  X + X − 1, от­ку­да X  =  (N + 1) : 2; так могут быть по­лу­че­ны толь­ко не­чет­ные числа.

Тогда для чётных чисел KN  =  KN − 1 + KN − 2, а для нечётных  — KN  =  KN − 1 + KN − 2 + K(N + 1) : 2. За­пол­ним таб­ли­цу для зна­че­ний от 2 до 9:

 

N3456789
KN23710203057

 

Ответ: 57.

 

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

def f(x, y):

if x == y:

return 1

if x > y:

return 0

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

print(f(2, 9))


Аналоги к заданию № 9206: 7933 7998 9314 Все

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