Я понимаю идею рекурсии, но мне сложно представить ее в этой конкретной задаче. Когда эта программа выполняется и вызывается Tree(75,t), она должна выполняться в следующих шагах:
tree(75-15,t) Вот здесь и возникает мое замешательство, затем это возвращается и выполняет строки 2-3 снова и снова, пока веткаLen < 5? Таким образом, шаги будут
t.forward(60)
t.right(20)
tree(60-15,t)
t.forward(45) и так далее до тех пор, пока BranchLen < 5, которая затем выполнит строку 6? Я правильно это понимаю или нет? Будем очень признательны за любую помощь!
Я изучаю решение проблем с помощью алгоритмов и структур данных с использованием Python и немного запутался в части рекурсии. Код следующий: [code]def tree(branchLen,t): if branchLen > 5: t.forward(branchLen) t.right(20) tree(branchLen-15,t) t.left(40) tree(branchLen-15,t) t.right(20) t.backward(branchLen)
main() [/code] Я понимаю идею рекурсии, но мне сложно представить ее в этой конкретной задаче. Когда эта программа выполняется и вызывается Tree(75,t), она должна выполняться в следующих шагах: [list] [*]branchLen > 5, следовательно, выполняется строка 3 [*]t.forward(75) [*]t.right(20) [*]tree(75-15,t) Вот здесь и возникает мое замешательство, затем это возвращается и выполняет строки 2-3 снова и снова, пока веткаLen < 5? Таким образом, шаги будут [*]t.forward(60) [*]t.right(20) [*]tree(60-15,t) [*]t.forward(45) и так далее до тех пор, пока BranchLen < 5, которая затем выполнит строку 6? Я правильно это понимаю или нет? Будем очень признательны за любую помощь! [/list]