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

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

 

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

2.  при­бавь 10.

 

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

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

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

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

Ре­ше­ние.

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

 

Обе ко­ман­ды уве­ли­чи­ва­ют ис­ход­ное число, по­это­му ко­ли­че­ство ко­манд не может пре­вос­хо­дить 31  — 10  =  21. При этом ми­ни­маль­ное ко­ли­че­ство ко­манд  — 3, т. к.  дробь: чис­ли­тель: 31 минус 10, зна­ме­на­тель: 10 конец дроби = дробь: чис­ли­тель: 21, зна­ме­на­тель: 10 конец дроби , округ­ляя в боль­шую сто­ро­ну по­лу­ча­ем 3.

 

Ко­манд может быть 3, 12 или 21. Трём ко­ман­дам со­от­вет­ству­ет набор 221, 3 ва­ри­ан­та рас­по­ло­же­ния. Две­на­дца­ти ко­ман­дам  — набор 211111111111, 12 воз­мож­ных ва­ри­ан­тов рас­по­ло­же­ния. Два­дца­ти одной ко­ман­де  — все еди­ни­цы, то есть 1 про­грам­ма. Всего имеем 16 про­грамм.

 

Ответ: 16.

 

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

var a: array[-10..31] of integer;

i:integer;

begin

for i:=10 to 31 do begin

a[10]:=1;

a[i]:=a[i-1]+a[i-10];

end;

println(a[31]);

end.

 

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

def f(x, y):

if x > y:

return 0

if x == y:

return 1

else:

return f(x + 1, y) + f(x + 10, y)

print(f(10, 31))


Аналоги к заданию № 4944: 4985 5497 5753 ... Все

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