def ackermann(m, n):
if m == 0:
return n+1
if n == 0:
return (m-1,1)
else:
return ackermann(m-1,ackermann(m,n-1))
ackermann(10,5)
Получение TypeError:
Traceback (most recent call last):
File "main.py", line 11, in <module>
print(ackermann(3,4))
File "main.py", line 9, in ackermann
return ackermann(m-1,ackermann(m,n-1))
File "main.py", line 9, in ackermann
return ackermann(m-1,ackermann(m,n-1))
File "main.py", line 9, in ackermann
return ackermann(m-1,ackermann(m,n-1))
[Previous line repeated 2 more times]
TypeError: unsupported operand type(s) for -: 'tuple' and 'int'
Я попытался визуализировать это на pythontutor.com, и когда m равно 9, n возвращает кортеж (9,1) и начинается ошибка.