#python #recursion
#python #рекурсия
Вопрос:
Например: проблема Ханоя связана с использованием нескольких рекурсивных вызовов — ‘hanoi(n-1, s, b, t) и hanoi(n-1, b, t, s). Однако я не уверен, в каком порядке выполняется код.
Может ли кто-нибудь разбить этот код для меня шаг за шагом?
def hanoi(n, s, t, b):
assert n > 0
if n ==1:
print 'move ', s, ' to ', t
else:
hanoi(n-1,s,b,t)
hanoi(1,s,t,b)
hanoi(n-1,b,t,s)
Комментарии:
1. сначала он выполнит первый рекурсивный вызов… до тех пор, пока не будет напечатано перемещение… затем он выполнит второй рекурсивный вызов (вплоть до печати), а затем выполнит последний вызов… весь путь вниз
2. так будет ли он печатать s в b, затем печатать s в t, а затем печатать b в t на основе исходной функции?
3. если n равно 2, я думаю, это правильно…