Решение задания 23 в электронных таблицах с помощью функции ИНДЕКС

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

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

2. Умножить на 2

Первая команда увеличивает число на экране на 1, вторая умножает его на 2. Программа для исполнителя Июнь15 – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 29 и при этом траектория вычислений содержит число 14 и не содержит числа 25?

Решение (электронные таблицы Excel, LibreOffice Calc с помощью функции ИНДЕКС):

  1. Основная идея решения заключается в том, что количество программ для данного числа равно сумме аналогичных значений чисел, в которые можно попасть из данного с помощью команд
  2. будем использовать возможность функции ИНДЕКС возвращать значение из ячейки, адрес которой можно вычислить. Для этого функции надо знать диапазон, в котором брать значения и номер строки и столбца внутри диапазона
  3. поскольку траектория содержит число 14, разобьем решение на два этапа
  4. найдем количество программ, для которых при исходном числе 2 результатом будет 14. В столбец А внесем числа от 2 до 14 так, чтобы каждое число совпадало с номером строки
  5. в столбец B внесем формулу для подсчета количества программ. В ячейке B2 это будет формула =ИНДЕКС(B$1:B$100;A2+1)+ИНДЕКС(B$1:B$100;A2*2)
  6. в функции ИНДЕКС(B$1:B$100;A2+1) B$1:B$100 это диапазон, внутри которого мы будем брать значения. Начинаться он должен с первой строки для того, чтобы нумерация строк внутри диапазона совпала с нумерацией чисел при вычислениях. А заканчиваться в такой ячейке, номер которой позволит взять любое число. В данном случае для расчета количества программ для числа 13 надо взять значения чисел 14 и 26. Значит, диапазон должен включать хотя бы 26 строк. Число 100 взято с запасом. Абсолютная адресация позволит эту формулу скопировать в другие ячейки стоблца B. A2 + 1 это вычисление из какой строки надо взять данные. По условию задачи у нас две команды: +1 и *2, соответственно, для подсчета количества программ в ячейке B2, которая соответствует числу 2, мы возьмем числа из строк 2 + 1 = 3 и 2 * 2 = 4
  7. данную формулу мы копируем на ячейки диапазона B3:B13, а в ячейку B14 внесем 1
  8. вторая часть решения – количество программ из 14 в 29. Построим данную часть правее, в столбцах С и D. Для корректной работы функции ИНДЕКС с формулами важно числа писать в совпадающие по номеру строки, а диапазон в формуле начинать с первой строки. Внесем формулу =ИНДЕКС(D$1:D100;C14+1)+ИНДЕКС(D$1:D100;C14*2) в ячейку D14, скопируем ее до ячейки D28, а в ячейку D29 внесем 1. Для того, чтобы учесть, что в 25 нельзя, просто удалим значение в столбце D напротив 25
  9. в ячейке B2 получилось количество программ, которыми можно попасть из 2 в 14, а в ячейке D14 количество программ из 14 в 29 минуя 25. Для получения итогового ответа перемножим эти числа: 13*1=13
  10. Ответ: 13

Подробнее о методе решения https://youtu.be/bHUpKN8iftA

комментария 2

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

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

            1. Прибавь 1

            2. Прибавь 3

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

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

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

    INDEX($B$1:$B$200;A2-1) дает ошибку 522…

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.