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

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

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

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

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

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

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

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

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

Ре­ше­ние.

Пусть R(x)  — ко­ли­че­ство про­грамм, ко­то­ры­ми можно из 2 по­лу­чить x.

За­ме­тим, что чётное число нель­зя по­лу­чить с ис­поль­зо­ва­ни­ем ко­ман­ды 3, по­сколь­ку в её про­цес­се скла­ды­ва­ет­ся чётное и нечётное число. Также за­ме­тим, что для того, чтобы по­лу­чить x с по­мо­щью ко­ман­ды 3, нужно при­ме­нять её к числу  дробь: чис­ли­тель: x плюс 1, зна­ме­на­тель: 2 конец дроби .

 

Вы­чис­лим по­сле­до­ва­тель­но зна­че­ние R:

R(0)  =  0;

R(1)  =  0;

R(2)  =  1;

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

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

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

R(6)  =  R(5) + R(3)  =  5 + 2  =  7;

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

R(8)  =  R(7) + R(5)  =  11 + 5  =  16;

R(9)  =  R(8) + R(6) + R(5)  =  16 + 7 + 5  =  28;

R(10)  =  R(9) + R(7)  =  28 + 11  =  39.

 

Ответ: 39.

 

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

def f(x, y):

if x > y:

return 0

if x == y:

return 1

else:

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

print(f(2, 10))


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

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