Условия задачи:

 

Функция Аккерманна. Функция Аккерманна является рекурсивным математическим алгоритмом, который используется для проверки, насколько успешно система оптимизи­рует свою производительность в случае рекурсии. Разработайте функцию ackermann (m,n),
которая решает функцию Аккерманна. Примените в своей функции следующую логику:
Если m  = 0, то вернуть  n+1
Если n =0, то вернуть ackermann(m - 1, 1).
Иначе вернуть  ackermann(m-1, ackermann(m, n-1).
После того как вы разработаете свою функцию, протестируйте ее с использованием
небольших значений для m и n.

 

Решение задачи:

def ackermann(m, n):
    if m == 0:
        return n + 1
    elif n == 0:
        return ackermann(m - 1, 1)
    else:
        return ackermann(m - 1, ackermann(m, n - 1))