Подсчет количества переходов: методы и примеры кода на Python

Чтобы подсчитать количество прыжков в данном контексте, я предполагаю, что вы подразумеваете под прыжком переход или шаг из одного состояния в другое. Вот несколько методов с примерами кода на Python:

Метод 1: Рекурсия

def count_hops_recursive(n):
    if n == 0 or n == 1:
        return 1
    elif n == 2:
        return 2
    else:
        return count_hops_recursive(n - 1) + count_hops_recursive(n - 2) + count_hops_recursive(n - 3)
n = 5
print(count_hops_recursive(n))  # Output: 13

Метод 2: динамическое программирование

def count_hops_dynamic(n):
    if n == 0 or n == 1:
        return 1
    dp = [0] * (n + 1)
    dp[0] = dp[1] = 1
    dp[2] = 2
    for i in range(3, n + 1):
        dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]
    return dp[n]
n = 5
print(count_hops_dynamic(n))  # Output: 13

Метод 3: итерация

def count_hops_iterative(n):
    if n == 0 or n == 1:
        return 1
    a, b, c = 1, 1, 2
    for i in range(3, n + 1):
        a, b, c = b, c, a + b + c
    return c
n = 5
print(count_hops_iterative(n))  # Output: 13