ГлавнаяИнформатикаКак решатьУ исполнителя Квадратор две команды, которым присвоены номера

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

2016-06-10 23:11:51

Формулировка задания: У исполнителя Квадратор две команды, которым присвоены номера: 1 - возведи в квадрат, 2 - прибавь 1. Первая из них возводит число на экране в квадрат, вторая – увеличивает его на 1. Запишите порядок команд в программе получения из числа A числа B, содержащей не более K команд, указывая лишь номера команд.

Задание входит в ЕГЭ по информатике для 11 класса под номером 6 (Анализ и построение алгоритмов для исполнителей).

Рассмотрим, как решаются подобные задания на примере.

Пример задания:

У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат,
2. прибавь 1.
Первая из них возводит число на экране в квадрат, вторая – увеличивает его на 1. Запишите порядок команд в программе получения из числа 1 числа 10, содержащей не более 4 команд, указывая лишь номера команд. (Например, программа 12122 – это программа:
возведи в квадрат,
прибавь 1,
возведи в квадрат,
прибавь 1,
прибавь 1,
которая преобразует число 1 в 6.)

Решение:

Нужно получить число 10 из 1, используя не более 4 команд. Лучше всего решать эту задачу обратным путем – получить из числа 10 число 1. Так как возвести в квадрат можно любое число, а извлечь квадратный корень возможно не из любого числа.

Заменим команды на обратные: «возведи в квадрат» на «извлеки квадратный корень», а «прибавь 1» на «вычти 1». И решим задачу обратным путем.

Так как корень из 10 извлечь нельзя, первой командой будет «вычти 1»:

10 – 1 = 9

Из 9 можно извлечь корень. Если сейчас выполнить «вычти 1», то следующее число, из которого извлекается корень, равно 4. А это уже больше 4 шагов. Поэтому выполняем команду «извлеки квадратный корень»:

9 = 3

Так как корень из 3 извлечь нельзя, следующей командой будет «вычти 1»:

3 – 1 = 2

Так как корень из 2 извлечь нельзя, следующей командой будет «вычти 1»:

2 – 1 = 1

Ровно за 4 команды мы получили из числа 10 число 1. Осталось изменить порядок команд на обратный и заменить названия команд на номера исходных. Таким образом, число 10 из 1 мы можем получить выполнением команд: «прибавь 1», «прибавь 1», «возведи в квадрат», «прибавь 1» или 2212.

Проверим, что все сделано верно:

(1 + 1 + 1)2 + 1 = 10

Ответ: 2212

Есть другой способ решения?

Наверх