我是cs的新生,我在理解python中的递归内容时遇到了一些问题。
我想问3个问题,或者确认我是否正确理解了内容。
1:我不确定在递归中使用基本情况的目的。基本案例是否可以在我的程序中的某个地方终止递归?
2:假设我的递归调用高于我程序的任何其他代码。程序是先运行递归,然后在递归后运行内容吗?
3:如何以合理的正确率正确追踪递归?我个人认为跟踪递归真的很难,我几乎无法在网上找到一些指导。
感谢您回答我的问题。
答案 0 :(得分:1)
是。这个想法是递归调用将继续调用自身(使用不同的输入),直到它调用基本情况(或许多基本情况之一)。基本案例通常是您的问题的案例,其中解决方案是微不足道的,并且不依赖于问题的任何其他部分。然后,它会根据最简单版本的问题得出答案,向后查看呼叫。
是。从外部与递归函数交互与与任何其他函数交互完全相同。
取决于您正在撰写的内容,以及您使用调试工具的舒适程度。如果您正在尝试跟踪在递归调用之间来回传递的值,print
函数开头的所有参数和最后的返回值可能会让您走得很远。
围绕这些东西的最简单的方法是写一些你自己的东西。从一些基本的例子(经典是阶乘函数)开始,如果你遇到困难就寻求帮助。
编辑:如果您更注重数学,那么您可能会查找数学归纳(无论如何,您将学习它作为cs教育的一部分)。这是完全相同的概念,只是略有不同。