Задание 23. Информатика. 2023-18

Просмотры: 115
Изменено: 24 ноября 2024

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

  1. Прибавить \(1\)
  2. Прибавить \(3\)
  3. Умножить на \(2\)
Первая команда увеличивает число на экране на \(1\), вторая увеличивает его на \(3\), третья умножает его на \(2\).
Программа для исполнителя М132 — это последовательность команд.
Сколько существует программ, которые преобразуют исходное число \(3\) в число \(14\) и при этом траектория вычислений программы содержит числа \(8\) и \(11\)? Траектория должна содержать оба указанных числа.
Траектория вычислений программы — это последовательность результатов выполнения всех команд. Например, для программы \(132\) при исходном числе \(7\) траектория будет состоять из чисел \(8\), \(16\), \(19\)

Решение:

Python


def f(n, target):
    if n == target:
        return 1
    if n > target:
        return 0
    return f(n+1, target) + f(n+3, target) + f(n*2, target)

print(f(3, 8) * f(8, 11) * f(11, 14))

Ответ: \(24\)