Привет! Отвечаю по пунктам, как ты просил.
В самом начале, чтобы понять задание: нужно посчитать, сколько программ есть, чтобы пройти путь от числа 1 до числа 27, при этом траектория должна включать число 8, а числа 10 и 11 — нет. Правильно?
Затем, как у нас есть решение: автор ввёл рекуррентные соотношения R(n), которые показывают количество способов преобразовать 1 в n. Он учитывает только те пути, которые не проходят через 10 и 11 (это важно, но в твоём решении явно это не отражено: в твоём ответе ты просто посчитал все варианты, не учитывая исключения). После подсчёта R(n) для всех n до 8, он ищет количество программ, ведущих из 8 в 27, и умножает их на количество путей из 1 в 8.
Теперь сравним твой ответ (60) с правильным (124). Ты посчитал всё абсолютно независимо от условий задачи, то есть без учёта исключений (чисел 10 и 11) и необходимости иметь число 8 в траектории. А правильное решение включает эти условия и использует динамическое программирование с учетом исключений.
Почему твой ответ не подходит?
- Ты не учёл, что траектория должна содержать число 8.
- Ты не учитывал, что нельзя проходить через 10 и 11.
- В правильном решении сначала нашли R(8), т.е. сколько путей из 1 в 8, далее определили сколько путей из 8 в 27, и перемножили их, потому что это два независимых сегмента пути. Только так можно правильно решить задачу.
Общий совет: при подобных задачах важно разбивать путь на части, учитывать ограничения и переходить к более простым подзадачам.
Если тебе что-то осталось неясным, скажи, и я расскажу подробнее!
Пожалуйста, оцени мой ответ лайком или дизлайком!