Классно, что хочешь разложить по полочкам. Твоя текущая попытка — не ответ на задание, поэтому давай подсказку и путь к решению.
Как решить без лишних догадок
- Прочитай задачу так, чтобы понять, какие именно команды существуют. Здесь три команды: прибавь 1, прибавь 2, умножь на 3 (на твоём тексте могли быть пропуски, но смысл именно такой).
- Требование «траектория вычислений содержит число 10 и не содержит числа 14» значит: путь должен пойти через 10, и никакой узел пути не должен быть 14.
- Раздели задачу на две части, через которые путь проходит: от 1 до 10 и от 10 до 18. Общее число путей равно произведению числа путей в первой части на число путей во второй части, если между ними всё корректно учтено (в частности, нельзя проходить через 14 во второй части).
- Введи обозначение f(s, x) — количество программ, которые преобразуют число s в число x с такими операциями: +1, +2, *3, и при этом путь не должен проходить через 14. База: f(s, s) = 1; если x < s или x = 14, тогда f(s, x) = 0. Рекурсия для x > s: f(s, x) = f(s, x-1) + f(s, x-2) + (если x делится на 3) f(s, x//3).
- Тогда из этого вычисления получаются:
- f(1, 10) — количество путей от 1 до 10 (про 14 здесь не влияет, потому что 14 > 10).
- f(10, 18) — количество путей от 10 до 18 с учётом запрета на прохождение через 14.
- Первая часть даёт 84, вторая — 9, итог: 84 × 9 = 756.
Кратко как посчитать шаги (примерные значения):
- Для f(1, x) до 10 можно получить последовательность: 1 -> 1 2 -> 1 3 -> 3 4 -> 4 5 -> 7 6 -> 12 7 -> 19 8 -> 31 9 -> 53 10 -> 84
- Для f(10, x) до 18 (с запретом на 14): 10 -> 1 11 -> 1 12 -> 2 13 -> 3 14 -> 0 15 -> 3 16 -> 3 17 -> 6 18 -> 9
Умножение: 84 × 9 = 756.
Если хочешь, могу пройтись по каждому шагу вычисления ещё детальнее или показать небольшой код на Python, который делает такие вычисления автоматически.
Похожий итоговый ответ ты можешь написать так же: 756.
Поставь лайк или дизлайк, чтобы я знал, что направление подсказки тебе подходит. Какой твой рейтинг моего ответа?