ЕГЭ 2019 по информатике задание 22

ЕГЭ 2019 по информатике задание 22

ЕГЭ 2019 по информатике задание 22

Тема: «Динамическое программирование»

Исполнитель Вычислитель преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 2
2. Умножить на 2
3. Прибавить 3
Первая из них увеличивает число на экране на 2, вторая умножает его на 2, третья увеличивает его на 3. Программа для Вычислителя – это последовательность команд.
Сколько существует таких программ, которые преобразуют исходное число 2 в число 22 и при этом траектория вычислений программы содержит число 11?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 123 при исходном числе 7 траектория будет состоять из чисел 9, 18, 21.

Данный пример взят из демоверсии 2019 по информатике на сайте http://fipi.ru

РЕШЕНИЕ

Данная задача относится к динамическому программированию.

Динамическое программирование — способ решения сложных задач путём разбиения их на более простые подзадачи.
Ключевая идея в динамическом программировании достаточно проста. Как правило, чтобы решить поставленную задачу, требуется решить отдельные части задачи (подзадачи), после чего объединить решения подзадач в одно общее решение

Для начала рассмотрим пример проще:

Исполнитель Вычислитель преобразует число, записанное на экране. У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1
2. Умножить на 2

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

Для решения построим таблицу:

Исполнитель Вычислитель преобразует число, записанное на экране

 

Из таблицы видео, чтобы получить, например, число 5, необходимо выполнить одну команду +1, т.е 4+1 =5. При этом для самого числа 4 было найдено 2 программы. Разберём ещё один пример числа 8:

ЕГЭ информатика динамическое программирование

 

Таким образом в данном примере ответом будет 5 программ.

В задаче № 22 ЕГЭ 2019 по информатике написано дополнительное условие: траектория вычислений программы содержит число 11. Это означает, что число 11 должно обязательно войти в траекторию.

Построим таблицу сначала до числа 11, а затем до 22:

ЕГЭ 2019 по информатике задание 22 исполнитель вычислитель преобразует число

 

 

 

ЕГЭ 2019 по информатике задание 22 траектория вычислений программы содержит число 11

Проанализируем количество команд для числа 12:

ЕГЭ 2019 по информатике задание 22 число 12

 

Проанализируем количество команд для числа 13:

ЕГЭ по информатике задание 22 число 13

Проанализируем количество команд для числа 14:

ЕГЭ 2019 по информатике задание 22 число 14

 

По аналогии анализируем оставшееся числа. В последнем числе 22 будет найдено 100 программ.

Ответ: 100

[newsletter_signup_form id=1]

Самостоятельная работа

Исполнитель Вычислитель преобразует число, записанное на экране.

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

  1. Умножить на 3
  2. Прибавить 2
  3. Прибавить 3

Первая из них умножает число на экране на 3, вторая увеличивает его на 2, третья увеличивает его на 3.

Программа для Вычислителя  это последовательность команд.

Сколько существует таких программ, которые преобразуют исходное число 2 в число 21 и при этом траектория вычислений программы содержит число 15?

Траектория вычислений программы  это последовательность результатов выполнения всех команд программы. Например, для программы 123 при исходном числе 7 траектория будет состоять из чисел 21, 23, 26.

 

Ответ напишите в комментариях этого поста

Данная задача была взята с открытого банка заданий ОГЭ по информатике.

 

 

Foxford
Информатика в школе