Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
- А. Прибавить 1
- В. Прибавить 2
- С. Прибавить 3
Программа для исполнителя – это последовательность команд.
Сколько существует программ, которые преобразуют число 5 в число 11, и при этом траектория вычислений содержит число 7?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы АСВ при исходном числе 7 траектория состоит из чисел 8, 11, 13.
Ответ:
ЕГЭ по информатике Основная волна 08.06.2024 kompege.ru – задание №23
Решение:
|
1 2 3 4 5 6 7 8 |
def f(x,y): if x>y: return 0 if x==y: return 1 if x<y: return f(x+1,y)+f(x+2,y)+f(x+3,y) print(f(5,7)*f(7,11)) |
Пояснение
Функция f(x, y):
if x > y:Если текущее значениеxбольшеy, то нет способов достичьyизx, поэтому возвращаем 0.if x == y:Если текущее значениеxравноy, то есть ровно один способ (остаться на месте), поэтому возвращаем 1.if x < y:Если текущее значениеxменьшеy, то мы можем добавить 1, 2 или 3 кx, и результат будет суммой всех возможных способов достиженияyизxчерезx + 1,x + 2иx + 3.
Основной код
print(f(5, 7) * f(7, 11)):
f(5, 7)находит количество способов преобразования числа 5 в число 7.f(7, 11)находит количество способов преобразования числа 7 в число 11.- Результат умножения этих двух значений дает общее количество программ, которые преобразуют число 5 в число 11, проходя через число 7.
Ответ: 14
