递归中的锚点大小写定义

Anchor case definition in recursion

本文关键字:大小写 定义 递归      更新时间:2023-10-16

锚大小写定义如下:

为参数的一个或多个值指定函数的值。

现在让我们看一下递归阶乘函数:

int fact(int n)
{
   if (n == 0)
      return 1;
   else
      return n * fact(n - 1);
}

我理解这一点:"指定了函数的值......"我明白了;当函数到达锚点大小写时,它只返回 1。

我不明白的是,函数的值是如何"为参数的一个或多个值指定的"?

定义是在谈论函数参数还是参数的数学术语?我只是在弹出运行时堆栈时没有看到为 [function] 参数的一个或多个值指定了函数的值。

某些递

归函数具有多个基本情况。例如,斐波那契数列为输入01指定了值,并为更高的值递归。

unsigned int fib(unsigned n) {
    if (n == 0 || n == 1) {
        return 1;
    } else {
        return fib(n-1) + fib(n-2);
    }
}

这是指功能参数。 这是函数的静态属性;它与运行时的瞬态无关。 "当运行时堆栈被弹出时"不是问题。

这个概念是,每次递归都必须使我们更接近答案。 这意味着在调用树的底部必须有一个绝对(非递归)值。 这个答案就是锚案例。

某些进程将只有一个定位点。 斐波那契有两个。 有些有更多,具体取决于该特定过程的"底部"在哪里。