【问题标题】:What is the minimum depth / base depth of a recursive function, 0 or 1?递归函数的最小深度/基本深度是多少,0 还是 1?
【发布时间】:2018-09-04 03:11:47
【问题描述】:

递归函数的最小深度是多少?也就是说,如果调用了一个递归函数,但它立即进入了基本情况,那么它的递归深度是 0 还是 1?

【问题讨论】:

  • 这似乎是主观的,虽然我会从 1 开始数。
  • 必须选择正确的答案不是主观的。
  • 我认为这里没有对错。在这种情况下没有普遍的真理。
  • 所以你是在告诉我在考试中不可能正确回答这个问题?
  • @AaronFranke 就像一些编程语言有从 0 开始的数组索引,而另一些是从 1 开始的。两者都没有错。有人可能会建议,如果一个函数不递归,它就没有增加深度,因此递归深度为 0,empty sum。另一个可能建议一个不递归的函数仍然使用 1 个堆栈帧,因此返回一个 1 的基本递归深度。两者都不是错误的。您的老师可以选择他/她希望正确的任何答案。

标签: algorithm function recursion methods


【解决方案1】:

正如 cmets 中所说,通常这可以是 0 或 1,但必须始终依赖于某些定义。如果这对您来说是一个可能的问题,那么我们应该假设有一个正确的答案。

如果在某些时候您的脚本中没有说明这一点,则应该可以找到相关的定义,以便您可以从那里得到正确的答案,例如:递归函数可以看作一棵树(递归树)。假设您在班级中定义了一棵树及其高度,那么您可以从那里开始学习。令 T 是一棵只包含一个节点的树,即根节点。 T的高度是多少?零或一,可以任意定义。这个高度也是递归函数的最小深度。

【讨论】:

  • 如果你很好奇,我确实在测试后发现他们想要的答案是零。很好的回答和讨论,但两者都有。
猜你喜欢
  • 2015-03-10
  • 2017-12-05
  • 2011-03-20
  • 1970-01-01
  • 2020-03-28
相关资源
最近更新 更多