Recursion 递归思维

Recursion 递归思维,recursion,Recursion,我想问一下,在编写递归调用时是否真的有必要跟踪每个递归调用,因为如果递归调用位于一个循环内或多个for循环内,我会遇到麻烦。当我试图理解正在发生的事情时,我只是迷路了。 你对如何处理递归问题以及如何想象它有什么建议吗。我已经读了很多关于它的书,但我还没有找到一个完美的答案。例如,我了解阶乘或斐波那契递归的工作原理。例如,当我试图打印长度为3的1到5的所有组合或n-queen问题的所有解决方案时,我迷路了。我遇到了一个类似的问题,请尝试绘制一个树状结构来跟踪每个递归调用。其中一个节点是一个函数,该

我想问一下,在编写递归调用时是否真的有必要跟踪每个递归调用,因为如果递归调用位于一个循环内或多个for循环内,我会遇到麻烦。当我试图理解正在发生的事情时,我只是迷路了。
你对如何处理递归问题以及如何想象它有什么建议吗。我已经读了很多关于它的书,但我还没有找到一个完美的答案。例如,我了解阶乘或斐波那契递归的工作原理。例如,当我试图打印长度为3的1到5的所有组合或n-queen问题的所有解决方案时,我迷路了。我遇到了一个类似的问题,请尝试绘制一个树状结构来跟踪每个递归调用。其中一个节点是一个函数,该节点的每个子节点都是从该函数进行的递归调用

对于递归问题的建模,每个人可能有不同的思维方式。如果你能以非递归的方式解决n皇后问题,那么你就很好了。不过,掌握递归的概念来解决问题肯定是有帮助的。如果你想做脑力练习,那么我建议你读一本关于序言的教科书。它很有趣,从一开始就教授递归

试图在n皇后区做点脑力消耗。通过反复尝试,它就像“我将如何手动完成”。对于n皇后,我建议在你的脑海中把它称为8皇后作为一个开始,只是为了让它看起来更熟悉和直观。这里的“n”不是迭代器,而是指定问题大小

  • 你认为n皇后有一个自相似性,就是你把一个皇后放在一块板上,这就是你的候选递归例程
  • 对于给定的板,您有一个例行程序来测试最新添加的皇后是否与先前放置的皇后冲突
  • 对于给定的董事会,如果当前职位的测试不成功,您有一个例行程序来查找尚未测试的女王职位
  • 如果您刚刚放置的皇后是第n个(最后一个)皇后,则打印出所有皇后位置
  • 否则(如果当前皇后被有效放置)您将放置一个额外的皇后

以上是您的程序。你的例行程序将通过一个早期皇后的位置列表。第一个调用是空列表。

您需要给出一个非常具体的示例,说明您试图理解的内容和不理解的内容。可能重复欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。在这里申请。StackOverflow不是设计、编码、研究或教程服务。我一直在尝试这样做,但当问题更严重时,很难为我画出来complicated@Zokav在这种情况下,我会说,你必须给出一个更具体的例子,或者你可以尝试编写一个程序,为你画一棵树。